📄 tsetup.c
字号:
} else if (SliceStyle == 0) slicer = SlicerQueue; else /* default SliceStyle == 2 */ slicer = RanSlicerQueue; if (new_soup) { if (GenInList) { tfree(GenInList); GenInList = NULL; } if (GenInBuf) { tfree(GenInBuf); GenInBuf = NULL; } } fclose(inf); if(strncmp(IMapFile,"-.map",5) ) /* not the default inst map */ { sprintf(Buff,"%s%s",GenebankPath,IMapFile); GetAMap(Buff); }/* added to GetSoup from old tierra.c */#ifdef __TURBOC__#if FRONTEND == STDIO ctrlbrk( T_sig_int);#endif#if FRONTEND == BASICFEPrintf(HLP_X,HLP_Y,1," Press Any Key for menu ... ");#endif /* BASIC */#endif /* __TURBOC__ */#ifdef unix signal(SIGINT, T_sig_int); signal(SIGUSR1, T_sig_read); signal(SIGUSR2, T_sig_info); signal(SIGHUP, T_sig_write); SigBlockSet = sigmask(SIGINT);#endif}void GetNewSoup(){ I32s i, j, ar = 0, ci = 2, cs, sad = 0, tNumCells = NumCells; Pcells ce; FILE *inf; NumCells = 0; sprintf(mes[0], "beginning of GetNewSoup"); FEMessage(1,mes); reaped = InstExe.i = InstExe.m = ExtractCount = CountMovMut = 0; CountMutRate = CountFlaw = RateMovMut = RateMut = RateFlaw = 0; FreeBlocks = FirstOutDisk = 1L; Generations = 0.; FreeMemCurrent = SoupSize; sprintf(mes[0], "init of soup complete"); FEMessage(1,mes); /* initialize FreeMem array */ MemInit(); /* initialize cells array */ for (i = 0; i < NumCelAr; i++) for (j = 0; j < CelArSiz; j++) InitCell(i,j,&cells[i][j]); TopDummy->ld = BottomDummy->ld = 1; ce = ThisSlice = BottomReap = TopReap = &cells[0][2]; /* read in the cell genotypes */ for (i = 0; i < tNumCells; i++) { if (!strncmp("space", GenInList[i], 5)) { sscanf(GenInList[i], "%*s%ld", &cs); sprintf(mes[0], "skipping %ld instructions", cs); FEMessage(1,mes); } else { sscanf(GenInList[i], "%4ld", &cs); sprintf(mes[0], "GetNewSoup: loading %s into cell %ld,%ld", GenInList[i], ar, ci); FEMessage(1,mes); InjectFromBank(GenInList[i], sad, 0); ci++; } if (!(ci % CelArSiz)) { ci = 0; ar++; } sad += cs; } plan();}void GetOldSoup(inf) FILE *inf;{ I32s i, gi, si, ar, ci, tNumGenotypes = 0, tNumSizes = 0; CellInd brind, trind, tsind; Pcells ce; FILE *inc; fgets(Buff, 84, inf); fgets(Buff, 84, inf); sscanf(Buff, "AverageSize = %ld", &AverageSize); fgets(Buff, 84, inf); sscanf(Buff, "BrkupCou = %ld", &BrkupCou); fgets(Buff, 84, inf); sscanf(Buff, "BrkupCum = %ld", &BrkupCum); fgets(Buff, 84, inf); sscanf(Buff, "CelArSiz = %ld", &CelArSiz); fgets(Buff, 84, inf); sscanf(Buff, "CellsSize = %ld", &CellsSize); fgets(Buff, 84, inf); sscanf(Buff, "CountFlaw = %ld", &CountFlaw); fgets(Buff, 84, inf); sscanf(Buff, "CountMovMut = %ld", &CountMovMut); fgets(Buff, 84, inf); sscanf(Buff, "CountMutRate = %ld", &CountMutRate); fgets(Buff, 84, inf); sscanf(Buff, "debug_switch = %ld", &debug_switch); fgets(Buff, 84, inf); sscanf(Buff, "DistNext.m = %ld", &DistNext.m); fgets(Buff, 84, inf); sscanf(Buff, "DistNext.i = %ld", &DistNext.i); fgets(Buff, 84, inf); sscanf(Buff, "Disturb.m = %ld", &Disturb.m); fgets(Buff, 84, inf); sscanf(Buff, "Disturb.i = %ld", &Disturb.i); fgets(Buff, 84, inf); sscanf(Buff, "ExtractCount = %ld", &ExtractCount); fgets(Buff, 84, inf); sscanf(Buff, "FirstOutDisk = %ld", &FirstOutDisk); fgets(Buff, 84, inf); sscanf(Buff, "FreeBlocks = %ld", &FreeBlocks); fgets(Buff, 84, inf); sscanf(Buff, "FreeMemCurrent = %ld", &FreeMemCurrent); fgets(Buff, 84, inf); sscanf(Buff, "Generations = %lf", &Generations); fgets(Buff, 84, inf); sscanf(Buff, "InstExe.i = %ld", &InstExe.i); fgets(Buff, 84, inf); sscanf(Buff, "InstExe.m = %ld", &InstExe.m); fgets(Buff, 84, inf); sscanf(Buff, "isolate = %ld", &isolate); fgets(Buff, 84, inf); sscanf(Buff, "LastDiv.i = %ld", &LastDiv.i); fgets(Buff, 84, inf); sscanf(Buff, "LastDiv.m = %ld", &LastDiv.m); fgets(Buff, 84, inf); sscanf(Buff, "MalLimit = %ld", &MalLimit); fgets(Buff, 84, inf); sscanf(Buff, "NumCelAr = %ld", &NumCelAr); fgets(Buff, 84, inf); sscanf(Buff, "NumGenotypes = %ld", &NumGenotypes); fgets(Buff, 84, inf); sscanf(Buff, "NumSizes = %ld", &NumSizes); fgets(Buff, 84, inf); sscanf(Buff, "Put_limit = %ld", &Put_limit); fgets(Buff, 84, inf); sscanf(Buff, "RandIx1 = %ld", &RandIx1); fgets(Buff, 84, inf); sscanf(Buff, "RandIx2 = %ld", &RandIx2); fgets(Buff, 84, inf); sscanf(Buff, "RandIx3 = %ld", &RandIx3); fgets(Buff, 84, inf); sscanf(Buff, "RateFlaw = %ld", &RateFlaw); fgets(Buff, 84, inf); sscanf(Buff, "RateMovMut = %ld", &RateMovMut); fgets(Buff, 84, inf); sscanf(Buff, "RateMut = %ld", &RateMut); fgets(Buff, 84, inf); sscanf(Buff, "reaped = %ld", &reaped); fgets(Buff, 84, inf); sscanf(Buff, "Search_limit = %ld", &Search_limit); fgets(Buff, 84, inf); sscanf(Buff, "SoupBot = %ld", &SoupBot); fgets(Buff, 84, inf); sscanf(Buff, "SoupTop = %ld", &SoupTop); fgets(Buff, 84, inf); sscanf(Buff, "TimeBirth = %ld", &TimeBirth); fgets(Buff, 84, inf); sscanf(Buff, "TimeDeath = %ld", &TimeDeath); fgets(Buff, 84, inf); sscanf(Buff, "TimePop = %lf", &TimePop); fgets(Buff, 84, inf); sscanf(Buff, "TotFlaw = %ld", &TotFlaw); fgets(Buff, 84, inf); sscanf(Buff, "TotMovMut = %ld", &TotMovMut); fgets(Buff, 84, inf); sscanf(Buff, "TotMut = %ld", &TotMut); fgets(Buff, 84, inf); sscanf(Buff, "filepos = %ld", &pos);#ifdef IBM3090 strcpy(Buff, "core_out.io.d");#else strcpy(Buff, "core_out");#endif ReadDynMem(Buff); ReadGeneBank(); if (DiskOut) {#ifdef IBM3090 if (BrkupSiz) sprintf(Buff, "break.%ld.d", BrkupCou); else sprintf(Buff, "tierra.run");#else if (BrkupSiz) sprintf(Buff, "%sbreak.%ld", OutPath, BrkupCou); else sprintf(Buff, "%stierra.run", OutPath);#endif oufr = fopen(Buff, "r+"); if (oufr == NULL) { FEError(-1309,EXIT,NOWRITE, "Tierra GetOldSoup() 1 file %s not opened, exiting", Buff); } fseek(oufr, pos, SEEK_SET); }}void WriteSoup(close_disk) I32s close_disk;{ FILE *ouf; I32s i, j, pos; I8s comd[120], path[99], tpath[99]; GList *tgl; FILE *fp, *tf; head_t head, thead; indx_t *indx, *tindx, indxt, gindx; long int tp; if (DiskOut) { pos = ftell(oufr); if (close_disk) fclose(oufr); } if (GeneBnker) SavGeneBank(); new_soup = 0;#ifdef IBM3090 sprintf(comd, "soup_out.io.d");#else sprintf(comd, "soup_out");#endif tp = (I32s) time(NULL); ouf = fopen(comd, "w"); if (ouf == NULL) { FEError(-1310,EXIT,NOWRITE, "Tierra WriteSoup() 0 file %s not opened, exiting", comd); } fprintf(ouf, "# tierra core: %s\n", ctime(&tp)); fprintf(ouf, "# observational parameters:\n\n"); fprintf(ouf, "BrkupSiz = %ld\n", BrkupSiz); fprintf(ouf, "CumGeneBnk = %ld\n", CumGeneBnk); fprintf(ouf, "debug = %ld\n", debug); fprintf(ouf, "DiskOut = %ld\n", DiskOut); fprintf(ouf, "GeneBnker = %ld\n", GeneBnker); fprintf(ouf, "GenebankPath = %s\n", GenebankPath); fprintf(ouf, "hangup = %ld\n", hangup); fprintf(ouf, "Log = %ld\n", Log); fprintf(ouf, "MaxFreeBlocks = %ld\n", MaxFreeBlocks); fprintf(ouf, "OutPath = %s\n", OutPath); fprintf(ouf, "RamBankSiz = %ld\n", RamBankSiz); fprintf(ouf, "SaveFreq = %ld\n", SaveFreq); fprintf(ouf, "SavMinNum = %ld\n", SavMinNum); fprintf(ouf, "SavThrMem = %g\n", SavThrMem); fprintf(ouf, "SavThrPop = %g\n", SavThrPop); fprintf(ouf, "WatchExe = %ld\n", WatchExe); fprintf(ouf, "WatchMov = %ld\n", WatchMov); fprintf(ouf, "WatchTem = %ld\n", WatchTem); fprintf(ouf, "\n# environmental variables:\n\n"); fprintf(ouf, "alive = %ld\n", alive); fprintf(ouf, "DistFreq = %f\n", DistFreq); fprintf(ouf, "DistProp = %f\n", DistProp); fprintf(ouf, "DivSameSiz = %ld\n", DivSameSiz); fprintf(ouf, "DivSameGen = %ld\n", DivSameGen); fprintf(ouf, "DropDead = %ld\n", DropDead); fprintf(ouf, "GenPerBkgMut = %f\n", GenPerBkgMut); fprintf(ouf, "GenPerFlaw = %f\n", GenPerFlaw); fprintf(ouf, "GenPerMovMut = %f\n", GenPerMovMut); fprintf(ouf, "IMapFile = %s\n", IMapFile); fprintf(ouf, "MalMode = %ld\n", MalMode); fprintf(ouf, "MalReapTol = %ld\n", MalReapTol); fprintf(ouf, "MalTol = %ld\n", MalTol); fprintf(ouf, "MateProb = %f\n", MateProb); fprintf(ouf, "MateSearchL = %ld\n", MateSearchL); fprintf(ouf, "MateSizeEp = %ld\n", MateSizeEp); fprintf(ouf, "MateXoverProp = %f\n", MateXoverProp); fprintf(ouf, "MaxMalMult = %g\n", MaxMalMult); fprintf(ouf, "MinCellSize = %ld\n", MinCellSize); fprintf(ouf, "MinTemplSize = %ld\n", MinTemplSize); fprintf(ouf, "MovPropThrDiv = %g\n", MovPropThrDiv); fprintf(ouf, "MemModeFree = %ld\n", MemModeFree); fprintf(ouf, "MemModeProt = %ld\n", MemModeProt); fprintf(ouf, "new_soup = %ld\n", new_soup); fprintf(ouf, "NumCells = %ld\n", NumCells); fprintf(ouf, "PhotonPow = %g\n", PhotonPow); fprintf(ouf, "PhotonWidth = %ld\n", PhotonWidth); fprintf(ouf, "PhotonWord = %s\n", PhotonWord); fprintf(ouf, "PutLimit = %g\n", PutLimit); fprintf(ouf, "ReapRndProp = %g\n", ReapRndProp); fprintf(ouf, "SearchLimit = %g\n", SearchLimit); fprintf(ouf, "seed = %ld\n", seed);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -