| 
 
  | 
    
     | steric_1.11 |  
     | Makefile,
      Makefile.sgi,
      README.steric,
      contplot,
      craig.c,
      craig.h,
      crystal.c,
      crystal.h,
      integrat.c,
      integrat.h,
      leach.c,
      leach.h,
      long_steric,
      makeit,
      mapcont,
      mapcont.c,
      mapprof,
      mapprof.c,
      profplot,
      proja.c,
      proja.h,
      ryan.c,
      ryan.h,
      ryan_perm.c,
      ryan_perm.h,
      ryan_quad.c,
      ryan_quad.h,
      steraid.c,
      steraid.h,
      stercalc.c,
      stercalc.h,
      stercomm.c,
      stercomm.h,
      sterdefn.h,
      stererr.h,
      sterfile.c,
      sterfile.h,
      stergrap.c,
      stergrap.h,
      stergrp.c,
      stergrp.h,
      steric,
      steric.TeX,
      steric.err,
      steric.grp,
      steric.hlp,
      steric.ini,
      steric.par,
      stermain.c,
      stermem.c,
      stermem.h,
      sterover.c,
      sterover.h,
      sterplot,
      stertext.c,
      stertext.h,
      test.bgf,
      test.inp,
      vectors.c,
      vectors.h, |  |  | /**************************************************************************/
/**************************************************************************/
/**************************   "steric"   **********************************/
/**************************************************************************/
/*************     Program to calculate ligand cone    ********************/
/*************     angles as a measure of steric size  ********************/
/**************************************************************************/
/**************************************************************************/
/**************************************************************************/
/******************   Additional Aid Functions   **************************/
/**************************************************************************/
/******************        This module is        **************************/
/******************      system independant      **************************/
/**************************************************************************/
#include 
#include 
#include 
#include "sterdefn.h" /* declaration of structures, functions and globals */
#include "steraid.h"  /* additional functions needed                      */
#include "stertext.h" /* all text functions for text mode                 */
/**************************************************************************/
/***************************************************************************/
char *Last_Character(char *string, char chr)
{
  int i=0,len;
  char *ptr;
  char newline[LINELEN];
  ptr=string;
  len=strlen(string);
  while((*ptr==chr)&&(i64)&&(ch<91))||((ch>96)&&(ch<123))) return(1);
  else return(0);
}
/**************************************************************************/
int Int_String(char *line)
{
  int i,len=strlen(line);
  char newline[LINELEN];
  strcpy(newline,line);
  for(i=0;i57)||(newline[i]<48)) newline[i]=' ';
  i=0;
  if(sscanf(newline,"%d",&i)) return(i);
  return(0);
}
/**************************************************************************/
char *strupr(char *s)
{
  int i;
  for(i=0;s[i]!=0;i++) if((s[i]>96)&&(s[i]<123)) s[i]-=32;
  return(s);
}
/**************************************************************************/
int stricmp(char *s1, char *s2)
{
  char ns1[LINELEN], ns2[LINELEN];
  strcpy(ns1,s1);
  strcpy(ns2,s2);
  strupr(ns1);
  strupr(ns2);
  return(strcmp(ns1,ns2));
}
/**************************************************************************/
double Change_Double(char *title, double val, FILE *input)
{
  char line[LINELEN];
  sprintf(line,"%s (%f):",title,val);
  Get_Input_Line(line,input);
  if (strlen(line)!=0) sscanf(line,"%lf",&val);
  return(val);
}
/**************************************************************************/
int Change_Integer(char *title, int val, FILE *input)
{
  char line[LINELEN];
  sprintf(line,"%s (%d):",title,val);
  Get_Input_Line(line,input);
  if (strlen(line)!=0) sscanf(line,"%d",&val);
  return(val);
}
/**************************************************************************/
long get_next_line(FILE *in, char *string, char *line)
{
  char card[LINELEN];
  int i,len=strlen(string);
  line[0]=0;
  strupr(string);
  while(fgets(line,148,in)!=NULL)
  {
    for(i=0;i0) return(A);
  else return(0.0);
}
/**************************************************************************/
double fmax(double A, double B)
{
  if (A > B) return(A);
  else return(B);
}
/**************************************************************************/
double fmin(double A, double B)
{
  if (A < B) return(A);
  else return(B);
}
/**************************************************************************/
double fmax3(double A, double B, double C)
{
  if(A>B) if(A>C) return(A);
	  else return(C);
  else if(C>B) return (C);
	  else return(B);
}
/**************************************************************************/
double fmin3(double A, double B, double C)
{
  if(A= 0) return(PI/2);
    else return(-PI/2);
  }
  else
  {
    A = atan(Y/X);
    if (A < 0) A = A + PI;
    return(A);
  }
}
/**************************************************************************/
double arcCos(double X)
{
  if (X>1)
  {
    printf("\nArcCos domain error x=%f\n",X);
    return(0.0);
  }
  if (X<-1)
  {
    printf("\nArcCos domain error x=%f\n",X);
    return(PI);
  }
  else return(acos(X));
}
/**************************************************************************/
double cosrule_angle(double A, double B, double C)
{
  double cosalpha;
  if ((A==0.0)||(B==0.0)||(C==0.0)) return(0.0);
  cosalpha = ((A*A)+(B*B)-(C*C))/(2*A*B);
  if (cosalpha>1) {cosalpha=1;printf(" coserr ");}
  if (cosalpha<-1) {cosalpha=-1;printf(" coserr ");}
  return (acos(cosalpha));
}
/**************************************************************************/
int power(int X, int Y)
{
  int count;
  int ans;
  ans=1;
  for(count=0;count
   |