half.cpp

来自「pic 模拟程序!面向对象」· C++ 代码 · 共 61 行

CPP
61
字号
/*  a program which will read an input file andthen output a file with 1/2 as many particles */#include <stdio.h>#include "xgrafix.h"void main(int argc,char **argv) {	FILE *In,*Out;	Scalar ftemp;	int number_of_species,pgnumparticlesin,pgnumparticlesout,speciesID;	char Revision[40];	int isp,i,j;	if((In = fopen(argv[1],"rb"))==NULL) exit(1);	if((Out = fopen(argv[2],"w"))==NULL) exit(1);	//Read and write the revision	XGRead(Revision,1,4,In,"char");	XGWrite(Revision,1,4,Out,"char");	//read and write the simulation time	XGRead(&ftemp,ScalarInt,1,In,ScalarChar);	XGWrite(&ftemp,ScalarInt,1,Out,ScalarChar);	//read and write nspecies	XGRead(&number_of_species,4,1,In,"int");	XGWrite(&number_of_species,4,1,Out,"int");	for(isp=0;isp<number_of_species;isp++)		{			do {				XGRead(&speciesID,4,1,In,"int");				XGRead(&pgnumparticlesin,4,1,In,"int");				pgnumparticlesout=pgnumparticlesin/2 + pgnumparticlesin%2;				XGWrite(&speciesID,4,1,Out,"int");				XGWrite(&pgnumparticlesout,4,1,Out,"int");				for(j=0;j<pgnumparticlesin;j++)					{						XGRead(&ftemp, ScalarInt, 1, In, ScalarChar);//x.e1						if(!(j%2)) XGWrite(&ftemp, ScalarInt, 1, Out, ScalarChar);						XGRead(&ftemp, ScalarInt, 1, In, ScalarChar); //x.e2						if(!(j%2)) XGWrite(&ftemp, ScalarInt, 1, Out, ScalarChar);						XGRead(&ftemp, ScalarInt, 1, In, ScalarChar); //v.e1						if(!(j%2)) XGWrite(&ftemp, ScalarInt, 1, Out, ScalarChar);						XGRead(&ftemp, ScalarInt, 1, In, ScalarChar); //v.e2						if(!(j%2)) XGWrite(&ftemp, ScalarInt, 1, Out, ScalarChar);						XGRead(&ftemp, ScalarInt, 1, In, ScalarChar); //v.e3						if(!(j%2)) XGWrite(&ftemp, ScalarInt, 1, Out, ScalarChar);						XGRead(&ftemp, ScalarInt, 1, In, ScalarChar); //np2c						ftemp*=2;						if(!(j%2)) XGWrite(&ftemp, ScalarInt, 1, Out, ScalarChar);						}  //for			} while(pgnumparticlesin);		}//for	int zero=0;	XGWrite(&zero, 4, 1, Out, "int");	XGWrite(&zero, 4, 1, Out, "int");	XGWrite(&zero, 4, 1, Out, "int");	XGWrite(&zero, 4, 1, Out, "int");	fclose(In);	fclose(Out);}

⌨️ 快捷键说明

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