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

📄 cdhouse.c

📁 一个很好的分子动力学程序
💻 C
字号:
/*************************************************************************Compile Switches*************************************************************************//*Switches of defintion of external Debug_g in cdhouse.h*/#define IS_CDHOUSE_H/*************************************************************************Include Files*************************************************************************/#include <stdio.h>#include <stdlib.h>#include <time.h>#include "cdhouse.h"#include "cdsubs.h"/*************************************************************************External Variables*************************************************************************//* Defined in cdsubs.c	*/extern Particle_t   *a;int Debug_g = FALSE;int CheckMem_g = FALSE;/*************************************************************************Module-wide variables*************************************************************************/static time_t InitialTime_m;static int NumFatalError_m = 0;/*************************************************************************Local Function Prototypes*************************************************************************/static char *GetElapsedTimeStr (void);/*************************************************************************Exported subroutines*************************************************************************//*  Start timer  */void StartProgramTimer (void)	{	time (&InitialTime_m);	}void CleanAfterError(void)	{	BOOLEAN IsProgramDone;	/*  Increment number of fatal errors  */	NumFatalError_m ++;	/*   Write state file is any CMD steps done	*/	if (GetNumberOfMDSteps() > 0)		{		printf ("\n");		printf ("SAVING MD STATE\n");		printf ("   Writing system state to file 'stop.sta'\n");		printf ("   Current step is %li.\n", a->step);		read_command ("write state stop.sta", &IsProgramDone);		}	/*  Call standard ending routines  */	CleanBeforeEnd();	/*  exit   */	exit (1);	}void CleanBeforeEnd (void)	{	/*  Write time information  */	printf ("\n");	printf ("TIME INFORMATION\n");	printf ("   Ending   Time: %s\n", GetCurrentTimeStr() );	printf ("   Elapsed  Time: %s\n", GetElapsedTimeStr() );	/*  Write CMD statistics  */	/*  Print Program Statistics	*/	if (GetNumberOfMDSteps() > 0)		{		printf ("\n");		printf ("DYNAMICS STATISTICS\n");		printf ("   Number of MD Steps:            %8li\n",			GetNumberOfMDSteps() );		printf ("   Number of Neighbor Searchs:    %8li\n",			GetNumNeighborSearchCalls() );		printf ("   Time spent on MD steps:        %8.0lf (secs)\n",			GetElapsedMDTime() );		printf ("   Time spent on Neighbor Search: %8.0lf (secs)\n",			GetElapsedNeighborSearchTime() );		}	/*  Print Number of Command Errors	*/	printf ("\n");	printf ("ERROR STATISTICS\n");	printf ("   Number of Fatal Errors:            %4i",		NumFatalError_m		  );	if (NumFatalError_m > 0)		printf ("   <=======  !!!\n");	else		printf ("\n");	printf ("   Number of Unknown Command Errors:  %4i",		GetNumberOfCommandErrors() );	if (GetNumberOfCommandErrors() > 0)		printf ("   <=======  !!!\n");	else		printf ("\n");	printf ("   Number of Misc. Warnings:          %4i",		GetNumberOfWarnings() );	if (GetNumberOfWarnings() > 0)		printf ("   <=======  !!!\n");	else		printf ("\n");	}/*  Return time and date string	*/char *GetCurrentTimeStr (void)	{	struct tm *timeptr;	static char TimeString[23];	time_t CurrentTime;	/*  Get current time  (in seconds from 1900)  */	time (&CurrentTime);	/*  Convert to date, time	*/	timeptr = localtime (&CurrentTime);	/*  Form string  */	sprintf (TimeString, "%02d/%02d/%04d   %02d:%02d:%02d",		timeptr->tm_mon+1, timeptr->tm_mday, timeptr->tm_year+1900,		timeptr->tm_hour, timeptr->tm_min, timeptr->tm_sec);	/*  Return string  */	return TimeString;	}/*************************************************************************Local Functions*************************************************************************//*  Print elapsed time	*/char *GetElapsedTimeStr (void)	{	static char ElapsedTimeStr[32];	time_t FinalTime;	double TimeDifference;	int	 Minute;	int	 Second;	/*  Get time difference  */	time (&FinalTime);	TimeDifference = difftime (FinalTime, InitialTime_m);	/*  Convert from seconds to minutes, seconds  */	Minute	= TimeDifference / 60;	Second	= TimeDifference - 60 * Minute;	/*  Form string  */	sprintf (ElapsedTimeStr, "%d min %02d sec",		Minute, Second);	/*  Return string  */	return ElapsedTimeStr;	}

⌨️ 快捷键说明

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