cdstep.c

来自「一个很好的分子动力学程序」· C语言 代码 · 共 123 行

C
123
字号
/*Functions for organizing output every N steps6 May 1996*//*************************************************************************Include Files*************************************************************************/#include <stdio.h>#include "cdhouse.h"#include "cdstep.h"/*************************************************************************Exported Functions*************************************************************************/void OpenStepOutput (StepOutput_t *StepOutput)	{	char *FileName;	/*  Open File	*/	if (StepOutput->Save)		{		/*  GET FILE NAME  */		FileName = StepOutput->FileName;		if (*FileName=='+')			FileName++;		/*  OPEN FILE FOR FIRST TIME AS WRITE	*/		if (StepOutput->IsFileNew)			{			StepOutput->IsFileNew = FALSE;			StepOutput->File = fopen (FileName, "wt");			}		/*  OPEN FILE AS APPEND  */		else			StepOutput->File = fopen (FileName, "at");		/*  Error opening file	*/		if (StepOutput->File==NULL)			{			printf ("\n*** ERROR: Cannot open Step Output File %s.\n", StepOutput->FileName);			CleanAfterError();			}		}	}/*  Call every step, returns true when time to output  */BOOLEAN NowStepOutput (StepOutput_t *StepOutput)	{	BOOLEAN Status = FALSE;	/*  If step output turned on	*/	if (StepOutput->Save)		{		/*  Increment current step  */		StepOutput->CurrentStep++;		/*  If enough steps passed then indicate output this step  */		if (StepOutput->CurrentStep == StepOutput->StepIncrement)			{			StepOutput->CurrentStep = 0;			Status = TRUE;			}		}	return Status;	}BOOLEAN ForceStepOutput (StepOutput_t *StepOutput, BOOLEAN ForceOutput)	{	BOOLEAN Status = FALSE;	/*  If step output turned on	*/	if (StepOutput->Save)		{		/*  Increment current step  */		StepOutput->CurrentStep++;		/*  If enough steps passed then indicate output this step  */		if (ForceOutput)			{			StepOutput->CurrentStep = 0;			Status = TRUE;			}		}	return Status;	}void CloseStepOutput (StepOutput_t *StepOutput)	{	if (StepOutput->Save && StepOutput->File!=NULL)		{		fclose (StepOutput->File);		StepOutput->File = NULL;		}	}void InitStepOutput (StepOutput_t *StepOutput)	{	StepOutput->File = NULL;	StepOutput->Save = FALSE;	StepOutput->IsFileNew = FALSE;	StepOutput->CurrentStep = 0;	StepOutput->StepIncrement = 0;	}

⌨️ 快捷键说明

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