ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/freemol/branches/sync4pymol12/src/mengine/src/read_sdf.c
(Generate patch)
# Line 9 | Line 9
9   #include "dipmom.h"
10   #include "draw.h"
11   #include "vibrate.h"
12 + #include "utility.h"
13  
14   #define TABULATOR_INCLUDE_IMPLEMENTATION
15   #include "tabulator.h"
# Line 153 | Line 154
154      fprintf(wfile,"$$$$\n");
155   //    fclose(wfile);
156   }
156
157   /* ===================================  */
158   // fast read - assume file is open and positioned
159   // read structure and down to end $$$$
# Line 167 | Line 167
167      int has_Aromatic, xPlus,yPlus,zPlus, planar;
168      int icount,itemp[4];
169      int Ret_Val;
170 +    int numbonds, *ib1, *ib2;
171      float xtmp, ytmp, ztmp, dz;
172      float fconst,min,max;
173      char  c1[4],c2[4];
# Line 205 | Line 206
206       nibond = atoi(c2);
207       if (niatom == 0)
208         return FALSE;
209 <
209 >     // allocate space for aromatic bonds
210 >     numbonds = 0;
211 >     ib1 = ivector(0,nibond);
212 >     ib2 = ivector(0,nibond);
213 >     //
214       for (i=0; i < niatom; i++)
215       {
216          FetchRecord(rfile,inputline);
# Line 261 | Line 266
266          {
267   // use bonds array as temporary storage for aromatic bonds
268             make_bond(ia1,ia2,1);
269 <           bonds.ia1[bonds.numbonds] = ia1;
270 <           bonds.ia2[bonds.numbonds] = ia2;
271 <           bonds.numbonds++;
269 >           ib1[numbonds] = ia1;
270 >           ib2[numbonds] = ia2;
271 >           numbonds++;
272             has_Aromatic = TRUE;
273          } else
274             make_bond(ia1, ia2, ibond);
# Line 439 | Line 444
444       quick_type();
445       if (has_Aromatic)
446       {
447 <         for (i=0; i < bonds.numbonds; i++)
448 <            mopaco(bonds.ia1[i],bonds.ia2[i]);
447 >         for (i=0; i < numbonds; i++)
448 >            mopaco(ib1[i],ib2[i]);
449       }
450 +     free_ivector(ib1,0,nibond);
451 +     free_ivector(ib2,0,nibond);
452       return Ret_Val;
453   }
454   // =====================
# Line 501 | Line 508
508                     {
509                         if( ibi <= 2 && ibj <= 3 )
510                         {
504                         // if( ia < ib )
505                         //                      fprintf(stderr,"cn; %d %d\n",ia,ib);
511                               make_bond( ia, ib, 1 );
512                         }
513                     }else if( jt == 7 )
514                     {
515                         if( ibj <= 2 && ibi <= 3 )
516                         {
512                         // if( ia < ib )
513                         //                      fprintf(stderr,"cn1; %d %d\n",ia,ib);
517                                make_bond( ia, ib, 1 );
518                         }
519                     }
# Line 531 | Line 534
534                     }
535                     if( ibi <= 3 && ibj <= 3 )
536                     {
534                       if( ia < ib )
537                            make_bond( ia, ib, 1 );
538                     }
539                 }

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines