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

📄 tsetup.c

📁 地球模拟器
💻 C
📖 第 1 页 / 共 3 页
字号:
    }    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 + -