ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/freemol/trunk/src/mengine/src/angles.c
(Generate patch)
# Line 7 | Line 7
7   #include "field.h"
8   #include "pot.h"
9  
10 // number of atoms with 5 or greater real bonds
11 struct t_high_coord {
12        int ncoord, i13[400][3];
13        } high_coord;
14
10   static int isangle(int, int);
11  
12   void get_angles()
# Line 22 | Line 17
17      int itemp[5];
18  
19      angles.nang = 0;
25    high_coord.ncoord = 0;
20      for (i=0; i < MAXANG; i++)
21      {
22          angles.i13[i][0] = 0;
# Line 232 | Line 226
226              angles.i13[angles.nang][2] = ie;
227              angles.i13[angles.nang][3] = 0;
228              angles.nang++;                        
235        } else if (jj == 5)
236        {
237             if (icoord == 0)
238            {
239              ia = atom[i].iat[0];
240              ib = atom[i].iat[1];
241              ic = atom[i].iat[2];
242              id = atom[i].iat[3];
243              ie = atom[i].iat[4];
244              // ia angles
245              high_coord.i13[high_coord.ncoord][0] = ia;
246              high_coord.i13[high_coord.ncoord][1] = i;
247              high_coord.i13[high_coord.ncoord][2] = ib;
248              high_coord.ncoord++;
249              high_coord.i13[high_coord.ncoord][0] = ia;
250              high_coord.i13[high_coord.ncoord][1] = i;
251              high_coord.i13[high_coord.ncoord][2] = ic;
252              high_coord.ncoord++;
253              high_coord.i13[high_coord.ncoord][0] = ia;
254              high_coord.i13[high_coord.ncoord][1] = i;
255              high_coord.i13[high_coord.ncoord][2] = id;
256              high_coord.ncoord++;
257              high_coord.i13[high_coord.ncoord][0] = ia;
258              high_coord.i13[high_coord.ncoord][1] = i;
259              high_coord.i13[high_coord.ncoord][2] = ie;
260              high_coord.ncoord++;
261              // ib angles
262              high_coord.i13[high_coord.ncoord][0] = ib;
263              high_coord.i13[high_coord.ncoord][1] = i;
264              high_coord.i13[high_coord.ncoord][2] = ic;
265              high_coord.ncoord++;
266              high_coord.i13[high_coord.ncoord][0] = ib;
267              high_coord.i13[high_coord.ncoord][1] = i;
268              high_coord.i13[high_coord.ncoord][2] = id;
269              high_coord.ncoord++;
270              high_coord.i13[high_coord.ncoord][0] = ib;
271              high_coord.i13[high_coord.ncoord][1] = i;
272              high_coord.i13[high_coord.ncoord][2] = ie;
273              high_coord.ncoord++;
274              // ic angles
275              high_coord.i13[high_coord.ncoord][0] = ic;
276              high_coord.i13[high_coord.ncoord][1] = i;
277              high_coord.i13[high_coord.ncoord][2] = id;
278              high_coord.ncoord++;
279              high_coord.i13[high_coord.ncoord][0] = ic;
280              high_coord.i13[high_coord.ncoord][1] = i;
281              high_coord.i13[high_coord.ncoord][2] = ie;
282              high_coord.ncoord++;
283              // id angles
284              high_coord.i13[high_coord.ncoord][0] = id;
285              high_coord.i13[high_coord.ncoord][1] = i;
286              high_coord.i13[high_coord.ncoord][2] = ie;
287              high_coord.ncoord++;
288            } else
289            {
290                icoord = 0;
291                for (j=0; j < MAXIAT; j++)
292                {
293                    if (atom[i].iat[j] != 0 && atom[i].bo[j] != 9)
294                    {
295                        itemp[icoord] = atom[i].iat[j];
296                        icoord++;
297                    }
298                }
299                ia = itemp[0];
300                ib = itemp[1];
301                ic = itemp[2];
302                id = itemp[3];
303                ie = itemp[4];
304              // ia angles
305              high_coord.i13[high_coord.ncoord][0] = ia;
306              high_coord.i13[high_coord.ncoord][1] = i;
307              high_coord.i13[high_coord.ncoord][2] = ib;
308              high_coord.ncoord++;
309              high_coord.i13[high_coord.ncoord][0] = ia;
310              high_coord.i13[high_coord.ncoord][1] = i;
311              high_coord.i13[high_coord.ncoord][2] = ic;
312              high_coord.ncoord++;
313              high_coord.i13[high_coord.ncoord][0] = ia;
314              high_coord.i13[high_coord.ncoord][1] = i;
315              high_coord.i13[high_coord.ncoord][2] = id;
316              high_coord.ncoord++;
317              high_coord.i13[high_coord.ncoord][0] = ia;
318              high_coord.i13[high_coord.ncoord][1] = i;
319              high_coord.i13[high_coord.ncoord][2] = ie;
320              high_coord.ncoord++;
321              // ib angles
322              high_coord.i13[high_coord.ncoord][0] = ib;
323              high_coord.i13[high_coord.ncoord][1] = i;
324              high_coord.i13[high_coord.ncoord][2] = ic;
325              high_coord.ncoord++;
326              high_coord.i13[high_coord.ncoord][0] = ib;
327              high_coord.i13[high_coord.ncoord][1] = i;
328              high_coord.i13[high_coord.ncoord][2] = id;
329              high_coord.ncoord++;
330              high_coord.i13[high_coord.ncoord][0] = ib;
331              high_coord.i13[high_coord.ncoord][1] = i;
332              high_coord.i13[high_coord.ncoord][2] = ie;
333              high_coord.ncoord++;
334              // ic angles
335              high_coord.i13[high_coord.ncoord][0] = ic;
336              high_coord.i13[high_coord.ncoord][1] = i;
337              high_coord.i13[high_coord.ncoord][2] = id;
338              high_coord.ncoord++;
339              high_coord.i13[high_coord.ncoord][0] = ic;
340              high_coord.i13[high_coord.ncoord][1] = i;
341              high_coord.i13[high_coord.ncoord][2] = ie;
342              high_coord.ncoord++;
343              // id angles
344              high_coord.i13[high_coord.ncoord][0] = id;
345              high_coord.i13[high_coord.ncoord][1] = i;
346              high_coord.i13[high_coord.ncoord][2] = ie;
347              high_coord.ncoord++;
348            }
349        } else if (jj > 5)
350        {
351            for (j=0; j < MAXIAT; j++)
352            {
353                if (atom[i].iat[j] != 0 && atom[i].bo[j] != 9)
354                {
355                    ia = atom[i].iat[j];
356                    for (k=j+1; k < MAXIAT; k++)
357                    {
358                        if (atom[i].iat[k] != 0 && atom[i].bo[k] != 9)
359                        {
360                            high_coord.i13[high_coord.ncoord][0] = ia;
361                            high_coord.i13[high_coord.ncoord][1] = i;
362                            high_coord.i13[high_coord.ncoord][2] = atom[i].iat[k];
363                            high_coord.ncoord++;
364                        }
365                    }
366                }
367            }
229          }
230  
231          if (angles.nang > MAXANG)
# Line 374 | Line 235
235              exit(0);
236          }
237      }
377    if (high_coord.ncoord > 0)
378       pot.use_highcoord = TRUE;
238        
239      for (i=0; i < angles.nang; i++)
240         angles.angin[i] = FALSE;

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines