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 + -
显示快捷键?