ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/freemol/trunk/src/mengine/src/rings.c
(Generate patch)
# Line 1 | Line 1
1   #define EXTERN extern
2  
3   #include "pcwin.h"
4 #include "pcmod.h"
4   #include "rings.h"
5 + #include "utility.h"
6  
7   int have_ring3(void);
8   int have_ring4(void);
# Line 31 | Line 31
31   void get_rsize(int,int,int,int *);
32   int aromatic_5(int *array,long int *flags,int *atomnum,int **,int **);
33   int aromatic_6(int *,long int *flags,int *atomnum,int **,int **);
34 < void get_rings(int natom,int **iat,long int *flags);
34 > void get_rings(int natom,long int *flags,int *atomnum,int **iat,int **bo);
35 > void allocate_rings(int niatom);
36 > int check_ring1(int);
37 >
38 > // ===========================
39 > void allocate_rings(int niatom)
40 > {
41 >  rings.nring3 = 0;
42 >  rings.nring4 = 0;
43 >  rings.nring5 = 0;
44 >  rings.nring6 = 0;
45 >  rings.r13 = imatrix(0,(niatom+10)/3, 0,3);
46 >  rings.r14 = imatrix(0,(niatom+10)/4, 0,4);
47 >  rings.r15 = imatrix(0,(niatom+10)/5, 0,5);
48 >  rings.r16 = imatrix(0,(niatom+10)/2, 0,6);
49 > }
50   // ======================
51   int have_ring3()
52   {
# Line 540 | Line 555
555      return (FALSE);
556   }
557   /* -------------------------------------------------------- */    
558 < void get_rings(int natom,int **iat,long int *flags)
558 > void get_rings(int natom,long int *flags,int *atomnum,int **iat,int **bo)
559   {
560    int i,j, add_ring, k, l, m, n,ij,isix;
561     int jatm,katm,latm,matm,xatm;
# Line 683 | Line 698
698                                                   rings.nring5++;
699                                                   if (rings.nring5 >= MAXATOM/5)
700                                                     message_alert("Error. Too many 5 membered rings!","ERROR");
701 <                                                 isix = aromatic_5(array,atom.flags,atom.atomnum,atom.iat,atom.bo);
701 >                                                 isix = aromatic_5(array,flags,atomnum,iat,bo);
702                                                   if (isix == TRUE)
703                                                     {
704                                                        for (ij = 0; ij < 5; ij++)
# Line 749 | Line 764
764                                                         rings.nring6++;
765                                                         if (rings.nring6 >= MAXATOM/6)
766                                                           message_alert("Error. Too many 6 membered rings!","ERROR");
767 <                                                       isix = aromatic_6(array,atom.flags,atom.atomnum,atom.iat,atom.bo);
767 >                                                       isix = aromatic_6(array,flags,atomnum,iat,bo);
768                                                         if (isix == TRUE)
769                                                           {
770                                                             for (ij = 0; ij < 6; ij++)
# Line 1036 | Line 1051
1051      }
1052      return FALSE;
1053   }
1054 + // ==================================
1055 + int check_ring1(int ia)
1056 + {
1057 +    if (is_ring61(ia)) return TRUE;
1058 +    if (is_ring51(ia)) return TRUE;
1059 +    if (is_ring31(ia)) return TRUE;
1060 +    if (is_ring41(ia)) return TRUE;
1061 +    return FALSE;
1062 + }
1063  

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines