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 ********************/
/**************************************************************************/
/**************************************************************************/
/**************************************************************************/
/****************** Menu command functions **************************/
/**************************************************************************/
/****************** This module is **************************/
/****************** system independant **************************/
/**************************************************************************/
#define MAXARG 25 /* maximum number of arguments in command line */
#define C_LEN 250 /* maximum line length for commands */
/**************************************************************************/
/**************************************************************************/
/**************************************************************************/
#define BLANK 1
/**************************************************************************/
/* definitions for first level of commands */
/**************************************************************************/
#define FILS 'f'
#define FILS_S "file"
#define FILS_L "data file input and output"
/**************************************************************************/
#define MOLE 'm'
#define MOLE_S "molecule"
#define MOLE_L "current molecule data"
/**************************************************************************/
#define SYMM 's'
#define SYMM_S "symmetry"
#define SYMM_L "crystal symmetry calculations"
/**************************************************************************/
#define CALC 'c'
#define CALC_S "calculate"
#define CALC_L "calculate steric parameters"
/**************************************************************************/
#define PLOT 'p'
#define PLOT_S "plot"
#define PLOT_L "graph steric profiles"
/**************************************************************************/
#define CHAN 'a'
#define CHAN_S "change"
#define CHAN_L "change data and parameters"
/**************************************************************************/
#define VIEW 'v'
#define VIEW_S "view"
#define VIEW_L "view molecule data and parameters tables"
/**************************************************************************/
#define HELP 'h'
#define HELP_S "help"
#define HELP_L "help on all commands"
/**************************************************************************/
#define EXIT 'x'
#define EXIT_S "exit"
#define EXIT_L "exit steric program"
/**************************************************************************/
/**************************************************************************/
/**************************************************************************/
/**************************************************************************/
/* definition for second level of commands under FILE */
/**************************************************************************/
#define LOAD 'l'
#define LOAD_S "load"
#define LOAD_L "load molecule data file"
/**************************************************************************/
#define SAVE 's'
#define SAVE_S "save"
#define SAVE_L "save molecule data file"
/**************************************************************************/
#define SVAS 'a'
#define SVAS_S "svas"
#define SVAS_L "save molecule under different filename"
/**************************************************************************/
#define SHEL 'e'
#define SHEL_S "shell"
#define SHEL_L "open operating system command shell"
/**************************************************************************/
/* definition for second level of commands under SYMM */
/**************************************************************************/
#define TRAN 't'
#define TRAN_S "transform"
#define TRAN_L "perform symmetry transform"
/**************************************************************************/
#define XPND 'x'
#define XPND_S "expand"
#define XPND_L "expand into unit cell"
/**************************************************************************/
#define BOXU 'b'
#define BOXU_S "box"
#define BOXU_L "box atomic data"
/**************************************************************************/
#define BOND 'd'
#define BOND_S "bond"
#define BOND_L "find bonds in atomic data"
/**************************************************************************/
#define GRUP 'g'
#define GRUP_S "group"
#define GRUP_L "find bonded molecular groups"
/**************************************************************************/
#define REDU 'r'
#define REDU_S "redundant"
#define REDU_L "exclude redundant atoms"
/**************************************************************************/
#define XGRR 'e'
#define XGRR_S "exclude"
#define XGRR_L "exclude atoms outside group radius"
/**************************************************************************/
#define SHLV 's'
#define SHLV_S "shell"
#define SHLV_L "calculate group shell group shell"
/**************************************************************************/
#define SVOL 'v'
#define SVOL_S "volume"
#define SVOL_L "calculate crystal volumes"
/**************************************************************************/
#define SPRO 'a'
#define SPRO_S "area"
#define SPRO_L "calculate projected areas"
/**************************************************************************/
/* definition for second level of commands under MOLE */
/**************************************************************************/
#define NEXT 'n'
#define NEXT_S "next"
#define NEXT_L "go to next molecule in memory"
/**************************************************************************/
#define PREV 'p'
#define PREV_S "previous"
#define PREV_L "go to previous molecule in memory"
/**************************************************************************/
#define GOTO 'g'
#define GOTO_S "goto"
#define GOTO_L "go to particular molecule"
/**************************************************************************/
#define KILL 'k'
#define KILL_S "kill"
#define KILL_L "kill molecule atoms"
/**************************************************************************/
#define CLOS 'c'
#define CLOS_S "close"
#define CLOS_L "close current molecule"
/**************************************************************************/
/* definitions for second level of commands under CALC */
/**************************************************************************/
#define TOTA 't'
#define TOTA_S "total"
#define TOTA_L "calculate steric parameter value"
/**************************************************************************/
#define CONF 'c'
#define CONF_S "conformer"
#define CONF_L "calculate steric parameter conformer average"
/**************************************************************************/
#define PROF 'p'
#define PROF_S "profile"
#define PROF_L "calculate steric parameter profile"
/**************************************************************************/
#define AREA 'a'
#define AREA_S "area"
#define AREA_L "projected area"
/**************************************************************************/
/* definitions for second level of commands under PLOT */
/**************************************************************************/
#define ORTH 'o'
#define ORTH_S "orthogonal"
#define ORTH_L "plot molecule orthogonal view"
/**************************************************************************/
#define MOLP 'm'
#define MOLP_S "molecule"
#define MOLP_L "plot molecule perspective view"
/**************************************************************************/
#define CART 'c'
#define CART_S "cartesian"
#define CART_L "plot cartesian steric parameter profile"
/**************************************************************************/
#define POLA 'p'
#define POLA_S "polar"
#define POLA_L "plot polar steric parameter profile"
/**************************************************************************/
#define STER 's'
#define STER_S "steric"
#define STER_L "plot steric parameter values"
/**************************************************************************/
#define CONT 'n'
#define CONT_S "contour"
#define CONT_L "plot steric cone angle contour"
/**************************************************************************/
#define PRFC 'r'
#define PRFC_S "profile"
#define PRFC_L "plot steric 3D radial profile contour"
/**************************************************************************/
/* definition for second level of commands under CHAN & VIEW */
/**************************************************************************/
#define SETT 's'
#define SETT_S "settings"
#define SETT_L "general calculation settings"
/**************************************************************************/
#define ORIG 'o'
#define ORIG_S "origin"
#define ORIG_L "current molecule origin"
/**************************************************************************/
#define PARA 'p'
#define PARA_S "parameters"
#define PARA_L "contents of parameter table"
/**************************************************************************/
/**************************************************************************/
/**************************************************************************/
/**************************************************************************/
/* definitions for third level of commands under SYMM/SVOL */
/**************************************************************************/
#define FREV 'f'
#define FREV_S "free"
#define FREV_L "free unit cell volume"
/**************************************************************************/
#define GRPV 'g'
#define GRPV_S "group"
#define GRPV_L "group volume"
/**************************************************************************/
#define CAVV 'c'
#define CAVV_S "cavity"
#define CAVV_L "cavity volume"
/**************************************************************************/
/* definitions for third level of commands under MOLE/KILL(CLOS) */
/**************************************************************************/
#define ATMS 'a'
#define ATMS_S "atoms"
#define ATMS_L "particular atoms"
/**************************************************************************/
#define TYPS 't'
#define TYPS_S "types"
#define TYPS_L "particular atom types"
/**************************************************************************/
#define GRPS 'g'
#define GRPS_S "groups"
#define GRPS_L "particular groups by type"
/**************************************************************************/
#define GRPN 'n'
#define GRPN_S "number"
#define GRPN_L "particular groups by name/number"
/**************************************************************************/
#define REST 'r'
#define REST_S "retore"
#define REST_L "restore killed atoms"
/**************************************************************************/
#define MOLC 'm'
#define MOLC_S "molecule"
#define MOLC_L "close entire molecule"
/**************************************************************************/
/* definitions for third level of commands under CALC/PLOT */
/**************************************************************************/
#define ANGU 'a'
#define ANGU_S "angular"
#define ANGU_L "angular cone angle profile"
/**************************************************************************/
#define CONE 'c'
#define CONE_S "cone"
#define CONE_L "cone angle"
/**************************************************************************/
#define TOLM 't'
#define TOLM_S "tolman"
#define TOLM_L "tolman cone angle"
/**************************************************************************/
#define OLDL 'o'
#define OLDL_S "old"
#define OLDL_L "old leach analytical solid angle"
/**************************************************************************/
#define RYAN 'r'
#define RYAN_S "ryan"
#define RYAN_L "ryan/peter multiple overlap solid angle"
/**************************************************************************/
#define CRAI 'g'
#define CRAI_S "craig"
#define CRAI_L "craig multiple overlap solid angle"
/**************************************************************************/
#define NUME 'n'
#define NUME_S "numerical"
#define NUME_L "craig numerical solid angle"
/**************************************************************************/
#define VAOV 'v'
#define VAOV_S "vertexO"
#define VAOV_L "vertex angle of overlap"
/**************************************************************************/
#define SAOV 's'
#define SAOV_S "solidO"
#define SAOV_L "solid angle of overlap"
/**************************************************************************/
#define VOLM 'l'
#define VOLM_S "volume"
#define VOLM_L "molecular volume"
/**************************************************************************/
#define PROJ 'p'
#define PROJ_S "project"
#define PROJ_L "projected area"
/**************************************************************************/
/* definitions for third level of commands under CALC/AREA */
/**************************************************************************/
#define THET 't'
#define THET_S "theta"
#define THET_L "area versus theta"
/**************************************************************************/
#define PHIP 'p'
#define PHIP_S "phi"
#define PHIP_L "area versus phi"
/**************************************************************************/
#define MAPP 'm'
#define MAPP_S "map"
#define MAPP_L "area versus theta and phi"
/**************************************************************************/
/* definitions for third level of commands under CHAN/MOLE */
/**************************************************************************/
#define CMGP 'g'
#define CMGP_S "group"
#define CMGP_L "change molecule group"
/**************************************************************************/
#define PLAN 'p'
#define PLAN_S "plane"
#define PLAN_L "change molecule projection plane"
/**************************************************************************/
/* definitions for third level of commands under CHAN/ORIG */
/**************************************************************************/
#define ATOM 'a'
#define ATOM_S "atom"
#define ATOM_L "change origin defining atom"
/**************************************************************************/
#define DIST 'd'
#define DIST_S "distance"
#define DIST_L "change origin distance from main atom"
/**************************************************************************/
#define GRPO 'g'
#define GRPO_S "group"
#define GRPO_L "change origin defining atom to group main atom"
/**************************************************************************/
/* definitions for third level of commands under VIEW/MOLE */
/**************************************************************************/
#define ATMV 'a'
#define ATMV_S "atoms"
#define ATMV_L "view molecule atoms"
/**************************************************************************/
#define VGRP 'g'
#define VGRP_S "groups"
#define VGRP_L "view molecule groups"
/**************************************************************************/
#define SYMV 's'
#define SYMV_S "symmetry"
#define SYMV_L "view molecule symmetry"
/**************************************************************************/
/* definitions for third level of commands under CHAN/SETT */
/**************************************************************************/
#define ORDM 'o'
#define ORDM_S "order"
#define ORDM_L "change multiple overlap order"
/**************************************************************************/
#define RANG 'r'
#define RANG_S "range"
#define RANG_L "change profile ranges"
/**************************************************************************/
#define PLTP 'l'
#define PLTP_S "plot"
#define PLTP_L "perpective plot ranges"
/**************************************************************************/
#define ROTA 't'
#define ROTA_S "rotation"
#define ROTA_L "contour plot rotation"
/**************************************************************************/
#define SIZE 's'
#define SIZE_S "size"
#define SIZE_L "change profile array sizes"
/**************************************************************************/
#define MODE 'm'
#define MODE_S "mode"
#define MODE_L "change profile ranging mode"
/**************************************************************************/
#define ACCU 'a'
#define ACCU_S "accuracy"
#define ACCU_L "change integration accuracy"
/**************************************************************************/
#define VOLG 'v'
#define VOLG_S "volume"
#define VOLG_L "numerical volume grid"
/**************************************************************************/
#define BNDD 'b'
#define BNDD_S "bonding"
#define BNDD_L "bond find settings"
/**************************************************************************/
/**************************************************************************/
/**************************************************************************/
struct commandstruct /* structure for generalised commands */
{
unsigned short lev; /* level (eg. menu level) */
char a; /* single character command */
char s[50]; /* short version of command, one word */
char l[C_LEN]; /* long version of command for help purposes */
int num; /* number of subsidiary commands */
struct commandstruct *sub; /* first subsidiary command */
struct commandstruct *next; /* next command in same level */
struct commandstruct *prev; /* previous command in same level */
};
typedef struct commandstruct Comm;
/**************************************************************************/
/**************************************************************************/
/**************************************************************************/
int Merge_Arguements(char *line, char **args);
int Get_Arguements(char *line, char **args);
Comm *Test_Command(char *args, char *command, Comm *super);
int Find_Commands(char *args, char *line, char *command_line, Comm *comm);
Comm *Initialize_Commands(void);
void Close_All_Commands(Comm *comm);
/**************************************************************************/
/****************** The End ... ******************************************/
/**************************************************************************/
|