]> git.treefish.org Git - phys/latlib.git/blobdiff - o815/obs.cpp
Implemented startconfig.
[phys/latlib.git] / o815 / obs.cpp
index cd86bf610508e3e3706fde0a6a1555b601a73e12..37d1d4ed7f3740f07a3b33684c0af8c24ddde2b4 100644 (file)
@@ -1,26 +1,44 @@
 #include "o815.h"
 
-void o815::obs::_meas(bool loadedobs) {
-  *olog << "OBS_" << obsid << ": meas not implemented!" << endl << flush;
-};
+#include "latlib/hypercache.h"
 
-void o815::obs::_finish() {
-  *olog << "OBS_" << obsid << ": finish not implemented!" << endl << flush;
-};
+#ifndef MPI_DISABLED
+#include <mpi.h>
+#endif
 
 void o815::obs::finish() {
   _finish();
 }
 
-void o815::obs::meas() {
-  _meas(true);
+void o815::obs::start() {
+  if(O815->rank==0) {
+    *out << "#" << O815->programid << "-" << obsid << obsidpostfix << O815->headMaster() << endl << flush;
+    *out << "#" << O815->programid << "-" << obsid << obsidpostfix << O815->headMaster() << "-" << datadesc << endl << flush;
+  }
+
+#ifndef MPI_DISABLED
+  if (O815->comargs.outdir=="")
+    MPI_Barrier(MPI_COMM_WORLD);
+#endif  
+
+  _start();
+}
+
+void o815::obs::meas(bool loadedobs, const int& nthmeas) {
+  _meas(loadedobs, nthmeas);
 }
 
-o815::obs::obs(const string& _obsid, o815 *_O815) {
+o815::obs::obs(const string& _obsid, const string& _datadesc, o815 *_O815, const int& obsmemSize, const string& _obsidpostfix) {
   obsid = _obsid;
+  obsidpostfix = _obsidpostfix;
   O815 = _O815;
-  
-  O815->out->newsub(obsid);
-  oout = O815->out->out[obsid];
-  olog = O815->out->log;
+  datadesc = _datadesc;
+  O815->out->newsub(obsid+obsidpostfix);
+
+  out = O815->out->out[obsid+obsidpostfix];
+  log = O815->out->log;
+  paraQ = O815->paraQ;
+
+  ocid = hypercache::initO(O815->programid + "-" + obsid, O815->comargs.nequi, O815->comargs.nskip,
+                          O815->comargs.obscache.first, &obsMem, obsmemSize, O815->comargs.obscache.second, log);
 }