hypercache::readO( (*obsit)->ocid, &readnewObs, &nequileftNewObs );
if ( readnewObs && nequileftNewObs < 0 ) {
- (*obsit)->meas(true);
+ (*obsit)->meas(true, imeas);
}
else {
if (!nextAlready) {
Sim->nextConfig();
nextAlready = true;
}
- (*obsit)->meas(false);
+ (*obsit)->meas(false, imeas);
hypercache::writeO( (*obsit)->ocid );
}
class obs {
public:
- obs(const string& _obsid, const string& _datadesc, o815 *_O815, const int& _obsmemSize);
+ obs(const string& _obsid, const string& _datadesc, o815 *_O815, const int& _obsmemSize, const string& _obsidpostfix="");
void finish();
- void meas(bool loadedobs);
+ void meas(bool loadedobs, const int& nthmeas);
void start();
string getDataDesc() { return datadesc; };
int ocid;
string obsid;
+ string obsidpostfix;
private:
- virtual void _meas(bool loadedobs)=0;
+ virtual void _meas(bool loadedobs, const int& nthmeas)=0;
virtual void _finish()=0;
virtual void _start()=0;
protected:
void nextConfig();
char *confMem;
virtual void _newParas()=0;
+ int nequi, nskip;
private:
virtual void _makeSweep()=0;
protected:
o815 *O815;
ostream *log;
- int nequi, nskip, confmemSize;
+ int confmemSize;
};
struct {
void o815::obs::start() {
if(O815->rank==0) {
- *out << "#" << O815->programid << "-" << obsid << O815->headMaster() << endl << flush;
- *out << "#" << O815->programid << "-" << obsid << O815->headMaster() << "-" << datadesc << endl << flush;
+ *out << "#" << O815->programid << "-" << obsid << obsidpostfix << O815->headMaster() << endl << flush;
+ *out << "#" << O815->programid << "-" << obsid << obsidpostfix << O815->headMaster() << "-" << datadesc << endl << flush;
}
if (O815->comargs.outdir=="")
_start();
}
-void o815::obs::meas(bool loadedobs) {
- _meas(loadedobs);
+void o815::obs::meas(bool loadedobs, const int& nthmeas) {
+ _meas(loadedobs, nthmeas);
}
-o815::obs::obs(const string& _obsid, const string& _datadesc, o815 *_O815, const int& obsmemSize) {
+o815::obs::obs(const string& _obsid, const string& _datadesc, o815 *_O815, const int& obsmemSize, const string& _obsidpostfix) {
obsid = _obsid;
+ obsidpostfix = _obsidpostfix;
O815 = _O815;
datadesc = _datadesc;
- O815->out->newsub(obsid);
+ O815->out->newsub(obsid+obsidpostfix);
- out = O815->out->out[obsid];
+ out = O815->out->out[obsid+obsidpostfix];
log = O815->out->log;
paraQ = O815->paraQ;