⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 cdcomm.c

📁 一个很好的分子动力学程序
💻 C
字号:
/*************************************************************************Include Files*************************************************************************/#include <stdio.h>#include <string.h>#include <stdarg.h>#include "cdhouse.h"#include "iomngr.h"#include "strsub.h"#include "cdsubs.h"#include "plotc.h"/*************************************************************************Compile Switches*************************************************************************/#define USE_COMMAND_PARSER_FUNCTION#undef  USE_COMMAND_PARSER_FUNCTION/*************************************************************************Global Variables*************************************************************************/extern Particle_t   *a;extern Simulation_t *s;extern FILE       *out;extern LIST       *inlist;/*************************************************************************Module-wide Variables*************************************************************************/static int NumberOfCommandErrors_m = 0;static int NumberOfWarnings_m = 0;/*  Local Command Buffer  */#ifdef USE_COMMAND_PARSER_FUNCTIONstatic char CharBuffer_m[2048];#endif/*************************************************************************Exported Functions*************************************************************************/void read_command (char *instr, int *qflag){   char *lpnt, *cpnt, *cmdstr, *tailstr;   char copystr[256];   strcpy (copystr, instr);	ReplaceMacro (copystr, 256);   /*  PARSE  STRING INTO COMMAND LINES  */	lpnt = copystr;   while (*(cpnt=strlin(&lpnt)))      {      /*  Skip comments (preceded by * or #)  */      if (IsComment (cpnt, "*#") )			continue;      tailstr = cpnt;      /*  PARSE COMMAND  */      cmdstr = strhed (&tailstr);      /*  Match Command  */      if      ( cmdstr[0] == '\''          )    fprintf (out, "%s\n", instr);      else if (!strcmpi(cmdstr,""         ));      else if (!strcmpi(cmdstr,"QUIT"     ))    *qflag = TRUE;      else if (!strcmpi(cmdstr,"ALLOCATE" ))    read_allocate (tailstr);      else if (!strcmpi(cmdstr,"BOX"      ))    read_box      (tailstr);      else if (!strcmpi(cmdstr,"BSAVE"    ))    read_bsave    (tailstr);      else if (!strcmpi(cmdstr,"CALC"     ))    read_calc     (tailstr);      else if (!strcmpi(cmdstr,"CLAMP"    ))    read_clamp    (tailstr);      else if (!strcmpi(cmdstr,"COMPARE"  ))    read_compare  (tailstr);      else if (!strcmpi(cmdstr,"CONSTRAIN"))    read_constrain(tailstr);      else if (!strcmpi(cmdstr,"COR"      ))    read_cor      (tailstr);      else if (!strcmpi(cmdstr,"CMD"      ))    read_cmd      (tailstr);      else if (!strcmpi(cmdstr,"DAMP"     ))    read_damp     (tailstr);      else if (!strcmpi(cmdstr,"DEBUG"    ))    read_debug    (tailstr);      else if (!strcmpi(cmdstr,"DISP"     ))    read_disp     (tailstr);      else if (!strcmpi(cmdstr,"DTIME"    ))    read_dtime    (tailstr);      else if (!strcmpi(cmdstr,"DUP"      ))    read_dup      (tailstr);      else if (!strcmpi(cmdstr,"ECHO"     ))    read_echo     (tailstr);      else if (!strcmpi(cmdstr,"ERASE"    ))    read_erase    (tailstr);      else if (!strcmpi(cmdstr,"ESAVE"    ))    read_esave    (tailstr);      else if (!strcmpi(cmdstr,"EUNIT"    ))    read_eunit    (tailstr);      else if (!strcmpi(cmdstr,"EXTFORCE" ))    read_extforce (tailstr);      else if (!strcmpi(cmdstr,"EXTSPRING"))    read_extspring(tailstr);      else if (!strcmpi(cmdstr,"FIX"      ))    read_fix      (tailstr);      else if (!strcmpi(cmdstr,"FILL"     ))    read_fill     (tailstr);      else if (!strcmpi(cmdstr,"ITEMP"    ))    read_itemp    (tailstr);      else if (!strcmpi(cmdstr,"LABEL"    ))    read_label    (tailstr);      else if (!strcmpi(cmdstr,"MACRO"    ))    read_macro    (tailstr);      else if (!strcmpi(cmdstr,"MACROF"   ))    read_macrof   (tailstr);      else if (!strcmpi(cmdstr,"MASS"     ))    read_mass     (tailstr);      else if (!strcmpi(cmdstr,"MC"       ))    read_mc       (tailstr);      else if (!strcmpi(cmdstr,"MOVE"     ))    read_move     (tailstr);      else if (!strcmpi(cmdstr,"NRANGE"   ))    read_nrange   (tailstr);      else if (!strcmpi(cmdstr,"PARTICLE" ))    read_particle (tailstr);      else if (!strcmpi(cmdstr,"PLOT"     ))    read_plot     (tailstr);      else if (!strcmpi(cmdstr,"POSITION" ))    read_particle (tailstr);      else if (!strcmpi(cmdstr,"POSVEL"   ))    read_posvel   (tailstr);      else if (!strcmpi(cmdstr,"POTENTIAL"))    read_potential(tailstr);      else if (!strcmpi(cmdstr,"PRESSURE" ))    read_pressure (tailstr);      else if (!strcmpi(cmdstr,"PSTRAIN"  ))    read_pstrain  (tailstr);      else if (!strcmpi(cmdstr,"QUENCH"   ))    read_quench   (tailstr);      else if (!strcmpi(cmdstr,"RCV"      ))    read_rcv      (tailstr);      else if (!strcmpi(cmdstr,"READ"     ))    read_read     (tailstr);      else if (!strcmpi(cmdstr,"REFSTEP"  ))    read_refstep  (tailstr);      else if (!strcmpi(cmdstr,"REMOVE"   ))    read_remove   (tailstr);      else if (!strcmpi(cmdstr,"REPEAT"   ))    read_repeat   (tailstr);      else if (!strcmpi(cmdstr,"ROTATE"   ))    read_rotate   (tailstr);      else if (!strcmpi(cmdstr,"RUN"      ))    read_run      (tailstr);      else if (!strcmpi(cmdstr,"SCALE"    ))    read_scale    (tailstr);      else if (!strcmpi(cmdstr,"SCREW"    ))    read_screw    (tailstr);      else if (!strcmpi(cmdstr,"SEED"     ))    read_seed     (tailstr);      else if (!strcmpi(cmdstr,"SELECT"   ))    read_select   (tailstr);      else if (!strcmpi(cmdstr,"SET"      ))    read_set      (tailstr);      else if (!strcmpi(cmdstr,"SIZE"     ))    read_size     (tailstr);      else if (!strcmpi(cmdstr,"SSAVE"    ))    read_ssave    (tailstr);      else if (!strcmpi(cmdstr,"STATE"    ))    read_state    (tailstr);      else if (!strcmpi(cmdstr,"STEP"     ))    read_step     (tailstr);      else if (!strcmpi(cmdstr,"STRESS"   ))    read_stress   (tailstr);      else if (!strcmpi(cmdstr,"SURFACE"  ))    read_surface  (tailstr);      else if (!strcmpi(cmdstr,"TAG"      ))    read_tag      (tailstr);      else if (!strcmpi(cmdstr,"TYPE"     ))    read_type     (tailstr);      else if (!strcmpi(cmdstr,"TYPELIST" ))    read_typelist (tailstr);      else if (!strcmpi(cmdstr,"TYPENAME" ))    read_typename (tailstr);      else if (!strcmpi(cmdstr,"VELOCITY" ))    read_velocity (tailstr);      else if (!strcmpi(cmdstr,"VERBOSE"  ))    read_verbose  (tailstr);      /* Maintain compatability with old name for PRESSURE command  */      else if (!strcmpi(cmdstr,"VOLUME"   ))    read_pressure (tailstr);      else if (!strcmpi(cmdstr,"WAVE"     ))    read_wave     (tailstr);      else if (!strcmpi(cmdstr,"WRITE"    ))    read_write    (tailstr);      else         {         puts ("***  ERROR: PREVIOUS COMMAND NOT RECOGNIZED.");         NumberOfCommandErrors_m++;         }      }   }int GetNumberOfCommandErrors (void)   {   return NumberOfCommandErrors_m;   }int GetNumberOfWarnings (void)   {   return NumberOfWarnings_m;   }void IncrementNumberOfWarnings (void)   {   NumberOfWarnings_m++;   }#ifdef USE_COMMAND_PARSER_FUNCTIONvoid x (char *format, ...){   va_list argptr;   int qflag = 0;   char *cp  = (char *) CharBuffer_m;   /*  CONVERT ARGUMENTS TO STRING  */   va_start (argptr, format);   vsprintf (CharBuffer_m, format, argptr);   va_end   (argptr);   /*  CALL COMMAND PROCESSOR  */   read_command (cp, &qflag);}#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -