General Purpose Geodetic Library
VcCalc2SessionIfc.cpp
Go to the documentation of this file.
1 /*
2  * This file is a part of vgosDbCalc. vgosDbCalc is a part of CALC/SOLVE
3  * system and is designed to calculate theoretical values and store them
4  * in the vgosDb format.
5  * Copyright (C) 2016-2020 Sergei Bolotin.
6  *
7  * This program is free software: you can redistribute it and/or modify
8  * it under the terms of the GNU General Public License as published by
9  * the Free Software Foundation, either version 3 of the License, or
10  * (at your option) any later version.
11  *
12  * This program is distributed in the hope that it will be useful,
13  * but WITHOUT ANY WARRANTY; without even the implied warranty of
14  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15  * GNU General Public License for more details.
16  *
17  * You should have received a copy of the GNU General Public License
18  * along with this program. If not, see <http://www.gnu.org/licenses/>.
19  *
20  */
21 
22 #include <QtCore/QDir>
23 #include <QtCore/QFile>
24 #include <QtCore/QFileInfo>
25 
26 
27 #include <Sg3dMatrix.h>
28 #include <SgLogger.h>
29 #include <SgVlbiAuxObservation.h>
30 #include <SgVlbiObservation.h>
31 
32 
33 #include "VcCalc2SessionIfc.h"
34 #include "vgosDbCalc.h"
35 
36 
37 
38 #define UNUSED __attribute__((__unused__))
39 
40 
41 
42 //static const QString obsoleteLcodesA[] =
43 static const char* obsoleteLcodesA[] =
44 {
45  "EUT1TEXT", "EWOBTEXT", "PEP TAPE", "PWOBTEXT", "PUT1TEXT", "REL MESS", "RGD MESS", "THODELAY",
46 };
47 
48 //static const QString obsoleteLcodesR[] =
49 static const char* obsoleteLcodesR[] =
50 {
51  "ATM CONT", "ATM PART", "AXIS OLD", "AXO2CONT", "C82ETCON", "CF2J2000", "CFA PART", "CFA22DRY",
52  "CFA22WET", "CON PART", "CONSCONT", "DEPS ", "DPSI ", "ELASTCON", "ETD PART", "ETD2CONT",
53  "ETD3CONT", "ETDKCONT", "ETJMGPAR", "EUT1 INF", "EUT1 PTS", "EWOB INF", "EWOBX&YT", "EQE CONT",
54  "EQE DIFF", "FUNDARGS", "GDNUTCON", "HELL EMS", "HELL DEL", "HELL RAT", "LANYIDRY", "LANYINFO",
55  "LANYIWET", "NEWEQCON", "NUT 1996", "NUT PART", "NUT2000A", "NUT2000P", "NUT2KXYP", "NUT2KXYS",
56  "OLDEQCON", "PERMDEF ", "PMOT2CON", "PMOTNCON", "PRE CFLG", "PRE MESS", "PRE PART", "PUT1 INF",
57  "PUT1 PTS", "PWOB INF", "PWOBX&YT", "REL CONT", "REL PART", "RGD CONT", "SHAP DEL", "SHAP RAT",
58  "SHAP T62", "SHAPCONT", "THODELAY", "THODRATE", "WAHRCONT", "WET PART", "WOB CONT", "WOBNUTAT",
59 };
60 
61 
62 
63 /*=======================================================================================================
64 *
65 * METHODS:
66 *
67 *======================================================================================================*/
68 //
69 // static first:
71 {
72  return "VcCalc2SessionIfc";
73 };
74 
75 
77  inputDbName_(""),
78  path2data_(""),
79  wrapperFileName_(""),
80  bandList_(),
81  currentBandKey_(""),
82  delAbyLCode_(),
83  delIbyLCode_(),
84  delJbyLCode_(),
85  del4byLCode_(),
86  delRbyLCode_(),
87  getAbyLCode_(),
88  getIbyLCode_(),
89  get4byLCode_(),
90  putAbyLCode_(),
91  putIbyLCode_(),
92  putRbyLCode_(),
93  put4byLCode_(),
94  bandDepPutsByLCode_()
95 {
97  session_ = NULL;
98  vgosDb_ = NULL;
99  obs_ = NULL;
100  o_ = NULL;
101  aux1_ = aux2_ = NULL;
102  obsIdx_ = -1;
103  numOfObservations_ = 0;
104  numOfStations_ = 0;
105  numOfSources_ = 0;
107  isPrimeBand_ = false;
108 
109  //
110  // fill the maps:
111  //
112 
113  // dels:
114  int num;
115  delAbyLCode_.clear();
116 // num = sizeof(obsoleteLcodesA)/sizeof(QString);
117  num = sizeof(obsoleteLcodesA)/sizeof(const char*);
118  for (int i=0; i<num; i++)
120  delIbyLCode_.clear();
121  delJbyLCode_.clear();
122  del4byLCode_.clear();
123  delRbyLCode_.clear();
124 // num = sizeof(obsoleteLcodesR)/sizeof(QString);
125  num = sizeof(obsoleteLcodesR)/sizeof(const char*);
126  for (int i=0; i<num; i++)
128 
129  // gets:
130  // char:
131  getAbyLCode_.clear();
132  getAbyLCode_.insert("SITNAMES", &VcCalc2SessionIfc::getA_sitNames);
133  getAbyLCode_.insert("STRNAMES", &VcCalc2SessionIfc::getA_strNames);
134  getAbyLCode_.insert("BASELINE", &VcCalc2SessionIfc::getA_baseline);
135  getAbyLCode_.insert("STAR ID ", &VcCalc2SessionIfc::getA_starId);
136 
137  // short:
138  getIbyLCode_.clear();
139  getIbyLCode_.insert("# SITES ", &VcCalc2SessionIfc::getI_numSites);
140  getIbyLCode_.insert("# STARS ", &VcCalc2SessionIfc::getI_numStars);
141  getIbyLCode_.insert("INTRVAL4", &VcCalc2SessionIfc::getI_intrval4);
142  getIbyLCode_.insert("UTC TAG ", &VcCalc2SessionIfc::getI_utc_tag2);
143  getIbyLCode_.insert("UTC TAG4", &VcCalc2SessionIfc::getI_utc_tag4);
144 
145  // float/double?
146  get4byLCode_.clear();
147  get4byLCode_.insert("ROTEPOCH", &VcCalc2SessionIfc::get4_rotEpoch);
148  get4byLCode_.insert("SEC TAG ", &VcCalc2SessionIfc::get4_sec_Tag);
149  get4byLCode_.insert("REF FREQ", &VcCalc2SessionIfc::get4_ref_freq);
150 
151  // ----------------------------------------------------------------------------------
152  // puts:
153  putAbyLCode_.clear();
154  // header:
155  putAbyLCode_.insert("ATI CFLG", &VcCalc2SessionIfc::putA_ati_cFlg);
156  putAbyLCode_.insert("ATI MESS", &VcCalc2SessionIfc::putA_ati_mess);
157  putAbyLCode_.insert("ATM CFLG", &VcCalc2SessionIfc::putA_atm_cFlg);
158  putAbyLCode_.insert("ATM MESS", &VcCalc2SessionIfc::putA_atm_mess);
159  putAbyLCode_.insert("AXO CFLG", &VcCalc2SessionIfc::putA_axo_cFlg);
160  putAbyLCode_.insert("AXO MESS", &VcCalc2SessionIfc::putA_axo_mess);
161  putAbyLCode_.insert("CALCFLGN", &VcCalc2SessionIfc::putA_calcFlgN);
162  putAbyLCode_.insert("CTI CFLG", &VcCalc2SessionIfc::putA_cti_cFlg);
163  putAbyLCode_.insert("CTI MESS", &VcCalc2SessionIfc::putA_cti_mess);
164  putAbyLCode_.insert("EOPSCALE", &VcCalc2SessionIfc::putA_obsolete);
165  putAbyLCode_.insert("ETD CFLG", &VcCalc2SessionIfc::putA_etd_cFlg);
166  putAbyLCode_.insert("ETD MESS", &VcCalc2SessionIfc::putA_etd_mess);
167  putAbyLCode_.insert("FUT1TEXT", &VcCalc2SessionIfc::putA_fUt1Text);
168  putAbyLCode_.insert("FWOBTEXT", &VcCalc2SessionIfc::putA_fWobText);
169  putAbyLCode_.insert("NUT CFLG", &VcCalc2SessionIfc::putA_nut_cFlg);
170  putAbyLCode_.insert("NUT MESS", &VcCalc2SessionIfc::putA_nut_mess);
171  putAbyLCode_.insert("OCE CFLG", &VcCalc2SessionIfc::putA_oce_cFlg);
172  putAbyLCode_.insert("OCE MESS", &VcCalc2SessionIfc::putA_oce_mess);
173  putAbyLCode_.insert("OCE STAT", &VcCalc2SessionIfc::putA_oce_stat);
174  putAbyLCode_.insert("PAN MESS", &VcCalc2SessionIfc::putA_pan_mess);
175  putAbyLCode_.insert("PEP MESS", &VcCalc2SessionIfc::putA_pep_mess);
176  putAbyLCode_.insert("PLX CFLG", &VcCalc2SessionIfc::putA_plx_cFlg);
177  putAbyLCode_.insert("PLX MESS", &VcCalc2SessionIfc::putA_plx_mess);
178  putAbyLCode_.insert("PTD CFLG", &VcCalc2SessionIfc::putA_ptd_cFlg);
179  putAbyLCode_.insert("PTD MESS", &VcCalc2SessionIfc::putA_ptd_mess);
180  putAbyLCode_.insert("REL CFLG", &VcCalc2SessionIfc::putA_rel_cFlg); // rel cflg
181  putAbyLCode_.insert("SIT MESS", &VcCalc2SessionIfc::putA_sit_mess);
182  putAbyLCode_.insert("STAR REF", &VcCalc2SessionIfc::putA_star_ref);
183  putAbyLCode_.insert("STR MESS", &VcCalc2SessionIfc::putA_str_mess);
184  putAbyLCode_.insert("STR CFLG", &VcCalc2SessionIfc::putA_str_cFlg);
185  putAbyLCode_.insert("TECTPLNM", &VcCalc2SessionIfc::putA_tectPlNm);
186  putAbyLCode_.insert("THE MESS", &VcCalc2SessionIfc::putA_the_mess); // rel mess
187  putAbyLCode_.insert("UT1 CFLG", &VcCalc2SessionIfc::putA_ut1_cFlg);
188  putAbyLCode_.insert("UT1 MESS", &VcCalc2SessionIfc::putA_ut1_mess);
189  putAbyLCode_.insert("UT1INTRP", &VcCalc2SessionIfc::putA_ut1Intrp);
190  putAbyLCode_.insert("WOB MESS", &VcCalc2SessionIfc::putA_wob_mess);
191  putAbyLCode_.insert("WOB CFLG", &VcCalc2SessionIfc::putA_wob_cFlg);
192  putAbyLCode_.insert("WOBINTRP", &VcCalc2SessionIfc::putA_wobIntrp);
193  //
194  //
195  putIbyLCode_.clear();
196  putIbyLCode_.insert("AXISTYPS", &VcCalc2SessionIfc::putI_axisTyps);
197  putIbyLCode_.insert("CALCFLGV", &VcCalc2SessionIfc::putI_calcFlgV);
198  putIbyLCode_.insert("TIDALUT1", &VcCalc2SessionIfc::putI_tidalUt1);
199  //
200  //
201  putRbyLCode_.clear();
202  putRbyLCode_.insert("AXISOFFS", &VcCalc2SessionIfc::putR_axisOffs);
203  putRbyLCode_.insert("AXISTILT", &VcCalc2SessionIfc::putR_axisTilt);
204  putRbyLCode_.insert("OPTLCOEF", &VcCalc2SessionIfc::putR_optlCoef);
205  putRbyLCode_.insert("SITERECS", &VcCalc2SessionIfc::putR_siteRecs);
206  putRbyLCode_.insert("SITEZENS", &VcCalc2SessionIfc::putR_siteZens);
207  putRbyLCode_.insert("SITHOCPH", &VcCalc2SessionIfc::putR_sitHocPh);
208  putRbyLCode_.insert("SITHOCAM", &VcCalc2SessionIfc::putR_sitHocAm);
209  putRbyLCode_.insert("SITOCAMP", &VcCalc2SessionIfc::putR_sitOcAmp);
210  putRbyLCode_.insert("SITOCPHS", &VcCalc2SessionIfc::putR_sitOcPhs);
211  putRbyLCode_.insert("STAR2000", &VcCalc2SessionIfc::putR_star2000);
212  //
213  //
214  put4byLCode_.clear();
215  put4byLCode_.insert("A1 - TAI", &VcCalc2SessionIfc::put4_obsolete);
216  put4byLCode_.insert("A1 - UTC", &VcCalc2SessionIfc::put4_obsolete);
217  put4byLCode_.insert("AXO CONT", &VcCalc2SessionIfc::put4_axo_cont);
218  put4byLCode_.insert("AXO PART", &VcCalc2SessionIfc::put4_axo_part);
219  put4byLCode_.insert("AZ-THEO ", &VcCalc2SessionIfc::put4_az_theo );
220  put4byLCode_.insert("BENDPART", &VcCalc2SessionIfc::put4_bendPart);
221  put4byLCode_.insert("CALC VER", &VcCalc2SessionIfc::put4_calc_ver);
222  put4byLCode_.insert("CF2J2K ", &VcCalc2SessionIfc::put4_cf2j2k);
223  put4byLCode_.insert("CON CONT", &VcCalc2SessionIfc::put4_con_cont);
224  put4byLCode_.insert("CONSNDEL", &VcCalc2SessionIfc::put4_consnDel);
225  put4byLCode_.insert("CONSNRAT", &VcCalc2SessionIfc::put4_consnRat);
226  put4byLCode_.insert("CONSPART", &VcCalc2SessionIfc::put4_consPart);
227  put4byLCode_.insert("CT SITE1", &VcCalc2SessionIfc::put4_ct_site1);
228  put4byLCode_.insert("EARTH CE", &VcCalc2SessionIfc::put4_earth_ce);
229  put4byLCode_.insert("EL-THEO ", &VcCalc2SessionIfc::put4_el_theo );
230  put4byLCode_.insert("ETD CONT", &VcCalc2SessionIfc::put4_etd_cont);
231  put4byLCode_.insert("FEED.COR", &VcCalc2SessionIfc::put4_feed_cor);
232  put4byLCode_.insert("FUT1 INF", &VcCalc2SessionIfc::put4_fUt1_inf);
233  put4byLCode_.insert("FUT1 PTS", &VcCalc2SessionIfc::put4_fUt1_pts);
234  put4byLCode_.insert("FWOB INF", &VcCalc2SessionIfc::put4_fWob_inf);
235  put4byLCode_.insert("FWOBX&YT", &VcCalc2SessionIfc::put4_fWobXnYt);
236  put4byLCode_.insert("MOONDATA", &VcCalc2SessionIfc::put4_moonData);
237  put4byLCode_.insert("NDRYCONT", &VcCalc2SessionIfc::put4_nDryCont);
238  put4byLCode_.insert("NDRYPART", &VcCalc2SessionIfc::put4_nDryPart);
239  put4byLCode_.insert("NGRADPAR", &VcCalc2SessionIfc::put4_nGradPar);
240  put4byLCode_.insert("NUT WAHR", &VcCalc2SessionIfc::put4_nut_wahr);
241  put4byLCode_.insert("NUT06XYP", &VcCalc2SessionIfc::put4_nut06XyP);
242  put4byLCode_.insert("NUT06XYS", &VcCalc2SessionIfc::put4_nut06Xys);
243  put4byLCode_.insert("NUT2006A", &VcCalc2SessionIfc::put4_nut2006A);
244  put4byLCode_.insert("NWETCONT", &VcCalc2SessionIfc::put4_nWetCont);
245  put4byLCode_.insert("NWETPART", &VcCalc2SessionIfc::put4_nWetPart);
246  put4byLCode_.insert("OCE CONT", &VcCalc2SessionIfc::put4_oce_cont);
247  put4byLCode_.insert("OCE DELD", &VcCalc2SessionIfc::put4_oce_deld);
248  put4byLCode_.insert("OCE HORZ", &VcCalc2SessionIfc::put4_oce_horz);
249  put4byLCode_.insert("OCE VERT", &VcCalc2SessionIfc::put4_oce_vert);
250  put4byLCode_.insert("OCE_OLD ", &VcCalc2SessionIfc::put4_oce_old );
251  put4byLCode_.insert("OPTLCONT", &VcCalc2SessionIfc::put4_optlCont);
252  put4byLCode_.insert("PARANGLE", &VcCalc2SessionIfc::put4_parAngle);
253  put4byLCode_.insert("PLX PART", &VcCalc2SessionIfc::put4_plx_part);
254  put4byLCode_.insert("PLX1PSEC", &VcCalc2SessionIfc::put4_plx1psec);
255  put4byLCode_.insert("POLAR XY", &VcCalc2SessionIfc::put4_polar_xy);
256  put4byLCode_.insert("PTD CONT", &VcCalc2SessionIfc::put4_ptd_cont);
257  put4byLCode_.insert("PTDXYPAR", &VcCalc2SessionIfc::put4_pTdXyPar);
258  put4byLCode_.insert("PTOLDCON", &VcCalc2SessionIfc::put4_ptOldCon);
259  put4byLCode_.insert("ROTEPOCH", &VcCalc2SessionIfc::put4_obsolete);
260  put4byLCode_.insert("SIT PART", &VcCalc2SessionIfc::put4_sit_part);
261  put4byLCode_.insert("STR PART", &VcCalc2SessionIfc::put4_str_part);
262  put4byLCode_.insert("SUN CONT", &VcCalc2SessionIfc::put4_sun_cont);
263  put4byLCode_.insert("SUN DATA", &VcCalc2SessionIfc::put4_sun_data);
264  put4byLCode_.insert("SUN2CONT", &VcCalc2SessionIfc::put4_sun2cont);
265  put4byLCode_.insert("TAI- UTC", &VcCalc2SessionIfc::put4_tai__utc);
266  put4byLCode_.insert("TILTRMVR", &VcCalc2SessionIfc::put4_tiltRmvr);
267  put4byLCode_.insert("UT1 -TAI", &VcCalc2SessionIfc::put4_ut1_tai);
268  put4byLCode_.insert("UT1 PART", &VcCalc2SessionIfc::put4_ut1_part);
269  put4byLCode_.insert("UT1EPOCH", &VcCalc2SessionIfc::put4_ut1Epoch);
270  put4byLCode_.insert("UT1LIBRA", &VcCalc2SessionIfc::put4_ut1Libra);
271  put4byLCode_.insert("UT1ORTHO", &VcCalc2SessionIfc::put4_ut1Ortho);
272  put4byLCode_.insert("UVF/ASEC", &VcCalc2SessionIfc::put4_uvf_asec);
273  put4byLCode_.insert("WOB PART", &VcCalc2SessionIfc::put4_wob_part);
274  put4byLCode_.insert("WOBEPOCH", &VcCalc2SessionIfc::put4_wobEpoch);
275  put4byLCode_.insert("WOBLIBRA", &VcCalc2SessionIfc::put4_wobLibra);
276  put4byLCode_.insert("WOBORTHO", &VcCalc2SessionIfc::put4_wobOrtho);
277  put4byLCode_.insert("WOBXCONT", &VcCalc2SessionIfc::put4_wobXcont);
278  put4byLCode_.insert("WOBYCONT", &VcCalc2SessionIfc::put4_wobYcont);
279 
280  bandDepPutsByLCode_.clear();
281  bandDepPutsByLCode_.insert("UVF/ASEC", 0);
282  bandDepPutsByLCode_.insert("FEED.COR", 0);
283 };
284 
285 
286 
287 //
289 {
291  {
292  if (session_)
293  {
294  delete session_;
295  session_ = NULL;
296  };
297  if (vgosDb_)
298  {
299  delete vgosDb_;
300  vgosDb_ = NULL;
301  };
302  };
303  getAbyLCode_.clear();
304  getIbyLCode_.clear();
305  get4byLCode_.clear();
306  putAbyLCode_.clear();
307  putIbyLCode_.clear();
308  putRbyLCode_.clear();
309  put4byLCode_.clear();
310  bandDepPutsByLCode_.clear();
311  obs_ = NULL;
312  o_ = NULL;
313  aux1_ = aux2_ = NULL;
314 };
315 
316 
317 
318 //
320 {
321  bandList_.clear();
322  for (int i=0; i<bands.size(); i++)
323  bandList_.append(bands.at(i));
324 };
325 
326 
327 
328 //
330 {
331  bool isOk(true);
332  bool isGuiEnabled;
333  isGuiEnabled = getenv("DISPLAY")!=NULL && strlen(getenv("DISPLAY"))>0;
335  {
337  "::readSession(): unexpected calling mode");
338  return false;
339  };
340  if (wrapperFileName_.size() == 0)
341  {
343  "::readSession(): the wrapper file name is empty");
344  return false;
345  };
346  if (path2data_.size())
347  {
348  QDir dir(path2data_);
349  if (!dir.exists())
350  {
352  "::readSession(): the provided directory, " + path2data_ + ", does not exists");
353  return false;
354  };
355  };
356  QFileInfo fi(path2data_ + "/" + wrapperFileName_);
357  if (!fi.exists())
358  {
360  "::readSession(): the file, " + path2data_ + "/" + wrapperFileName_ + ", does not exists");
361  return false;
362  };
363  session_ = new SgVlbiSession;
365 
368  "::readSession(): the vgosDb object has been created");
369 
372  "::readSession(): parsing of wrapper file " + path2data_ + "/" + wrapperFileName_ + " has been" +
373  (isOk?" complete":" failed"));
374 
375  isOk = session_->getDataFromVgosDb(vgosDb_, true, isGuiEnabled);
377  "::readSession(): import data from " + path2data_ + "/" + wrapperFileName_ + " has been" +
378  (isOk?" complete":" failed"));
379 
380  if (isOk)
381  {
385  };
386  return true;
387 };
388 
389 
390 
391 //
393 {
395  {
397  "::writeSession(): unexpected calling mode");
398  return false;
399  };
400  //
401  bool isOk;
404 
406  "::writeSession(): import data from " + path2data_ + "/" + wrapperFileName_ + " has been" +
407  (isOk?" complete":" failed"));
408 
409  return isOk;
410 };
411 
412 
413 
414 //
415 void VcCalc2SessionIfc::mimic_Kai(short openMode, const QString& inputDbName, short inputDbVersion,
416  const QString& outputDbName, short &outputDbVersion, short &errorFlag)
417 {
419  "::mimic_Kai(): got a call for " + inputDbName + " of version " +
420  QString("").setNum(inputDbVersion) + ", open mode=" + QString("").setNum(openMode));
421  // check the mode:
422  if (openMode!=1 && openMode!=2)
423  {
425  "::mimic_Kai(): wrong open mode: " + QString("").setNum(openMode));
426  errorFlag = 4;
427  return;
428  };
429  if (outputDbName.left(4) != "SAME") // unable to save with an alternate name (at least, now)
430  {
432  "::mimic_Kai(): unexpected name of the output database: [" + outputDbName + "]");
433  errorFlag = 9;
434  return;
435  };
436  if (inputDbVersion < 1) // fix it later too
437  {
439  "::mimic_Kai(): unexpected database version number: " + QString("").setNum(inputDbVersion));
440  errorFlag = 7;
441  return;
442  };
443  if (inputDbName == inputDbName_ && session_ && vgosDb_) // already read and should be ok
444  {
447  "::mimic_Kai(): the session " + inputDbName + " already read");
448  errorFlag = 0;
449  openMode_ = openMode==1?OM_ReadOnly:OM_ReadWrite;
450  obsIdx_ = -1;
452  {
456  };
458  "::mimic_Kai(): the session " + inputDbName + " is ready for " +
459  (openMode_==OM_ReadOnly?"reading":"writting") + ", " +
460  QString("").sprintf("Num(Obs/Stn/Src)=%d/%d/%d",
462  return;
463  };
464 
465  int yr;
466  bool isOk;
467  yr = inputDbName.mid(0,2).toInt(&isOk);
468  if (!isOk)
469  {
471  "::mimic_Kai(): cannot infer the year of the database: [" + inputDbName + "]");
472  errorFlag = 8;
473  inputDbName_ = "";
474  openMode_ = OM_None;
475  return;
476  };
477  yr += (78<yr)?1900:2000;
478 
479  path2data_ = setup.getPath2VgosDbFiles() + QString("").sprintf("/%04d/", yr) + inputDbName;
480  wrapperFileName_.sprintf("%s_V%03d_kall.wrp", qPrintable(inputDbName), inputDbVersion);
481 
482  if (readSession())
484  "::mimic_Kai(): the session " + inputDbName + " has been successfully read from " + path2data_);
485  else
486  {
488  "::mimic_Kai(): read of session failed");
489  errorFlag = 9;
490  inputDbName_ = "";
491  openMode_ = OM_None;
492  return;
493  };
494  //
495  openMode_ = openMode==1?OM_ReadOnly:OM_ReadWrite;
496  inputDbName_ = inputDbName;
497  outputDbVersion = inputDbVersion + 1;
498  errorFlag = 0;
499  obsIdx_ = -1;
500 };
501 
502 
503 
504 //
505 short VcCalc2SessionIfc::mimic_MvRec(short ntoc, short kmode, short knum)
506 {
507  short rc=0;
508  if (!session_)
509  {
511  "::mimic_MvRec(): the session is NULL");
512  return 5;
513  };
514  if (!vgosDb_)
515  {
517  "::mimic_MvRec(): the vgosDb data are not loaded yet");
518  return 5;
519  };
520  if (ntoc<0 || 2<ntoc)
521  {
523  "::mimic_MvRec(): unexpected nToC number: " + QString("").setNum(ntoc));
524  return 4;
525  };
526  if (kmode<0 || 1<kmode)
527  {
529  "::mimic_MvRec(): unexpected kMode number: " + QString("").setNum(kmode));
530  return 4;
531  };
532  if (knum<0 || 1<knum)
533  {
535  "::mimic_MvRec(): unexpected kNum number: " + QString("").setNum(knum));
536  return 4;
537  };
538  //
539  //
540  if (ntoc == 1)
541  {
542  obsIdx_ = -1;
543  rc = 0;
544  }
545  else
546  {
547  if (kmode == 1)
548  obsIdx_++;
549  else
550  obsIdx_ = knum;
552 // if (2 <= obsIdx_) // shortcut:
553  rc = 1;
554  };
555  obs_ = NULL;
556  o_ = NULL;
557  aux1_ = aux2_ = NULL;
558  if (rc==0 && 0<=obsIdx_ && obsIdx_<numOfObservations_)
559  {
562  aux1_ = obs_->auxObs_1();
563  aux2_ = obs_->auxObs_2();
564  };
565  //
566  /*
567  logger->write(SgLogger::DBG, SgLogger::IO, className() +
568  "::mimic_MvRec(): set the observation index to " + QString("").setNum(obsIdx_));
569  */
570  return rc;
571 };
572 
573 
574 
575 //
577 {
578  if (openMode_ == OM_ReadOnly)
579  {
581  "::mimic_Finis(): the openMode is ReadOnly: nothing to do");
582  }
583  else if (openMode_ == OM_ReadWrite)
584  {
586  {
587  if (writeSession())
589  "::mimic_Finis(): the session has been updated");
590  else
592  "::mimic_Finis(): the procedure has failed");
593  };
595  "::mimic_Finis(): the openMode is ReadWrite: set it to None");
596  openMode_ = OM_None;
597  }
598  else
600  "::mimic_Finis(): inappropriate call of the function: openMode is not R/O nor R/W");
601 };
602 
603 
604 
605 //
607 {
609  {
610  if (openMode_ == OM_None)
611  {
614  "::rewind(): the mode has been set to R/W");
615  }
616  else
618  "::mimic_Finis(): inappropriate call of the function: openMode is not None");
619  }
620  else
622  "::rewind(): unexpected call of the function");
623 };
624 
625 
626 
627 //
628 void VcCalc2SessionIfc::mimic_pHist(const QString& histRecord)
629 {
631 };
632 
633 
634 
635 
636 //
637 //
638 // dispatchers: adds:
639 //
640 void VcCalc2SessionIfc::mimicAddA(short nToc, const QString& lCode, const QString& descr,
641  short dim1, short dim2, short dim3)
642 {
643  if (!putAbyLCode_.contains(lCode))
644  {
646  "::mimicAddA(): unknown LCode: \"" + lCode + "\" [" + descr + "] (" + QString("").setNum(dim1) +
647  "," + QString("").setNum(dim2) + "," + QString("").setNum(dim3) +
648  ") of the nToc #" + QString("").setNum(nToc));
649  };
650 };
651 
652 
653 
654 //
655 void VcCalc2SessionIfc::mimicAddI(short nToc, const QString& lCode, const QString& descr,
656  short dim1, short dim2, short dim3)
657 {
658  if (!putIbyLCode_.contains(lCode))
659  {
661  "::mimicAddI(): unknown LCode: \"" + lCode + "\" [" + descr + "] (" + QString("").setNum(dim1) +
662  "," + QString("").setNum(dim2) + "," + QString("").setNum(dim3) +
663  ") of the nToc #" + QString("").setNum(nToc));
664  };
665 };
666 
667 
668 
669 //
670 void VcCalc2SessionIfc::mimicAddJ(short nToc, const QString& lCode, const QString& descr,
671  short dim1, short dim2, short dim3)
672 {
673  // if (!putJbyLCode_.contains(lCode))
674  if (true)
675  {
677  "::mimicAddJ(): unknown LCode: \"" + lCode + "\" [" + descr + "] (" + QString("").setNum(dim1) +
678  "," + QString("").setNum(dim2) + "," + QString("").setNum(dim3) +
679  ") of the nToc #" + QString("").setNum(nToc));
680  };
681 };
682 
683 
684 
685 //
686 void VcCalc2SessionIfc::mimicAdd4(short nToc, const QString& lCode, const QString& descr,
687  short dim1, short dim2, short dim3)
688 {
689  if (!put4byLCode_.contains(lCode) && !putRbyLCode_.contains(lCode))
690  {
692  "::mimicAdd4(): unknown LCode: \"" + lCode + "\" [" + descr + "] (" + QString("").setNum(dim1) +
693  "," + QString("").setNum(dim2) + "," + QString("").setNum(dim3) +
694  ") of the nToc #" + QString("").setNum(nToc));
695  };
696 };
697 
698 
699 
700 //
701 void VcCalc2SessionIfc::mimicAddR(short nToc, const QString& lCode, const QString& descr,
702  short dim1, short dim2, short dim3)
703 {
704  if (!putRbyLCode_.contains(lCode) && !put4byLCode_.contains(lCode))
705  {
707  "::mimicAddR(): unknown LCode: \"" + lCode + "\" [" + descr + "] (" + QString("").setNum(dim1) +
708  "," + QString("").setNum(dim2) + "," + QString("").setNum(dim3) +
709  ") of the nToc #" + QString("").setNum(nToc));
710  };
711 };
712 
713 
714 
715 //
716 //
717 // dispatchers: dels:
718 //
719 void VcCalc2SessionIfc::mimicDelA(short nToc, const QString& lCode)
720 {
721  if (delAbyLCode_.contains(lCode))
722  return (this->*delAbyLCode_.value(lCode))(lCode, nToc);
723  else
724  {
726  "::mimicDelA(): unknown LCode: \"" + lCode + "\" of the nToc #" + QString("").setNum(nToc));
727  };
728 };
729 
730 
731 
732 //
733 void VcCalc2SessionIfc::mimicDelI(short nToc, const QString& lCode)
734 {
735  if (delIbyLCode_.contains(lCode))
736  return (this->*delIbyLCode_.value(lCode))(lCode, nToc);
737  else
738  {
740  "::mimicDelI(): unknown LCode: \"" + lCode + "\" of the nToc #" + QString("").setNum(nToc));
741  };
742 };
743 
744 
745 
746 //
747 void VcCalc2SessionIfc::mimicDelJ(short nToc, const QString& lCode)
748 {
749  if (delJbyLCode_.contains(lCode))
750  return (this->*delJbyLCode_.value(lCode))(lCode, nToc);
751  else
752  {
754  "::mimicDelJ(): unknown LCode: \"" + lCode + "\" of the nToc #" + QString("").setNum(nToc));
755  };
756 };
757 
758 
759 
760 //
761 void VcCalc2SessionIfc::mimicDel4(short nToc, const QString& lCode)
762 {
763  if (del4byLCode_.contains(lCode))
764  return (this->*del4byLCode_.value(lCode))(lCode, nToc);
765  else
766  {
768  "::mimicDel4(): unknown LCode: \"" + lCode + "\" of the nToc #" + QString("").setNum(nToc));
769  };
770 };
771 
772 
773 
774 //
775 void VcCalc2SessionIfc::mimicDelR(short nToc, const QString& lCode)
776 {
777  if (delRbyLCode_.contains(lCode))
778  return (this->*delRbyLCode_.value(lCode))(lCode, nToc);
779  else
780  {
782  "::mimicDelR(): unknown LCode: \"" + lCode + "\" of the nToc #" + QString("").setNum(nToc));
783  };
784 };
785 
786 
787 
788 //
789 // dispatchers: gets:
790 //
791 short VcCalc2SessionIfc::mimicGetA(const QString& lCode, char values[],
792  short dim1, short dim2, short dim3, short actualDimension[])
793 {
794  for (int i=0; i<dim1; i++)
795  for (int j=0; j<dim2; j++)
796  for (int k=0; k<dim3; k++)
797  *(values + i + dim1*j + dim1*dim2*k) = ' ';
798  if (getAbyLCode_.contains(lCode))
799  return (this->*getAbyLCode_.value(lCode))(values, dim1, dim2, dim3, actualDimension);
800  else
801  {
803  "::mimicGetA(): unknown LCode: \"" + lCode + "\" (" + QString("").setNum(dim1) +
804  "," + QString("").setNum(dim2) + "," + QString("").setNum(dim3) +
805  "), the operation has been skipped");
806  actualDimension[0] = dim1;
807  actualDimension[1] = dim2;
808  actualDimension[2] = dim3;
809  return 1; // data not found
810  };
811 };
812 
813 
814 
815 //
816 short VcCalc2SessionIfc::mimicGetI(const QString& lCode, short values[],
817  short dim1, short dim2, short dim3, short actualDimension[])
818 {
819  for (int i=0; i<dim1; i++)
820  for (int j=0; j<dim2; j++)
821  for (int k=0; k<dim3; k++)
822  *(values + i + dim1*j + dim1*dim2*k) = 0;
823  if (getIbyLCode_.contains(lCode))
824  return (this->*getIbyLCode_.value(lCode))(values, dim1, dim2, dim3, actualDimension);
825  else
826  {
828  "::mimicGetI(): unknown LCode: \"" + lCode + "\" (" + QString("").setNum(dim1) +
829  "," + QString("").setNum(dim2) + "," + QString("").setNum(dim3) +
830  "), the operation has been skipped");
831  actualDimension[0] = dim1;
832  actualDimension[1] = dim2;
833  actualDimension[2] = dim3;
834  return 1; // data not found
835  };
836 };
837 
838 
839 
840 //
841 short VcCalc2SessionIfc::mimicGet4(const QString& lCode, double values[],
842  short dim1, short dim2, short dim3, short actualDimension[])
843 {
844  for (int i=0; i<dim1; i++)
845  for (int j=0; j<dim2; j++)
846  for (int k=0; k<dim3; k++)
847  *(values + i + dim1*j + dim1*dim2*k) = 0.0;
848  if (get4byLCode_.contains(lCode))
849  return (this->*get4byLCode_.value(lCode))(values, dim1, dim2, dim3, actualDimension);
850  else
851  {
853  "::mimicGet4(): unknown LCode: \"" + lCode + "\" (" + QString("").setNum(dim1) +
854  "," + QString("").setNum(dim2) + "," + QString("").setNum(dim3) +
855  "), the operation has been skipped");
856  actualDimension[0] = dim1;
857  actualDimension[1] = dim2;
858  actualDimension[2] = dim3;
859  return 1; // data not found
860  };
861 };
862 
863 
864 
865 //
866 void VcCalc2SessionIfc::mimicPutA(const QString& lCode, const char values[],
867  short dim1, short dim2, short dim3)
868 {
869 // std::cout << " =======> puta(): lcode=[" << qPrintable(lCode)
870 // << "], dims=(" << dim1 << "," << dim2 << "," << dim3 << ")" << "\n";
871  if (putAbyLCode_.contains(lCode))
872  {
873  if (isPrimeBand_ || bandDepPutsByLCode_.contains(lCode))
874  (this->*putAbyLCode_.value(lCode))(values, dim1, dim2, dim3);
875  }
876  else
877  {
879  "::mimicPutA(): unknown LCode: \"" + lCode + "\" (" + QString("").setNum(dim1) +
880  "," + QString("").setNum(dim2) + "," + QString("").setNum(dim3) +
881  "), the operation has been skipped");
882  return; // data not found
883  };
884 };
885 
886 
887 
888 //
889 void VcCalc2SessionIfc::mimicPutI(const QString& lCode, const short values[],
890  short dim1, short dim2, short dim3)
891 {
892 // std::cout << " =======> puti(): lcode=[" << qPrintable(lCode)
893 // << "], dims=(" << dim1 << "," << dim2 << "," << dim3 << ")" << "\n";
894  if (putIbyLCode_.contains(lCode))
895  {
896  if (isPrimeBand_ || bandDepPutsByLCode_.contains(lCode))
897  (this->*putIbyLCode_.value(lCode))(values, dim1, dim2, dim3);
898  }
899  else
900  {
902  "::mimicPutI(): unknown LCode: \"" + lCode + "\" (" + QString("").setNum(dim1) +
903  "," + QString("").setNum(dim2) + "," + QString("").setNum(dim3) +
904  "), the operation has been skipped");
905  return; // data not found
906  };
907 };
908 
909 
910 
911 //
912 void VcCalc2SessionIfc::mimicPutR(const QString& lCode, const double values[],
913  short dim1, short dim2, short dim3)
914 {
915  if (putRbyLCode_.contains(lCode))
916  {
917  if (isPrimeBand_ || bandDepPutsByLCode_.contains(lCode))
918  (this->*putRbyLCode_.value(lCode))(values, dim1, dim2, dim3);
919  }
920  else
921  {
923  "::mimicPutR(): unknown LCode: \"" + lCode + "\" (" + QString("").setNum(dim1) +
924  "," + QString("").setNum(dim2) + "," + QString("").setNum(dim3) +
925  "), the operation has been skipped");
926  return; // data not found
927  };
928 };
929 
930 
931 
932 //
933 void VcCalc2SessionIfc::mimicPut4(const QString& lCode, const double values[],
934  short dim1, short dim2, short dim3)
935 {
936  if (put4byLCode_.contains(lCode))
937  {
938  if (isPrimeBand_ || bandDepPutsByLCode_.contains(lCode))
939  (this->*put4byLCode_.value(lCode))(values, dim1, dim2, dim3);
940  }
941  else
942  {
944  "::mimicPut4(): unknown LCode: \"" + lCode + "\" (" + QString("").setNum(dim1) +
945  "," + QString("").setNum(dim2) + "," + QString("").setNum(dim3) +
946  "), the operation has been skipped");
947  return; // data not found
948  };
949 };
950 
951 
952 
953 
954 
955 // Implementation:
956 //
957 
958 //
959 // known dels:
960 //
961 // DelAs:
962 //
963 void VcCalc2SessionIfc::delA_obsolete(UNUSED const QString& lCode, UNUSED short nToc)
964 {
965 /*
966  logger->write(SgLogger::DBG, SgLogger::IO, className() +
967  "::delA_obsolete(): the known obsolete LCode \"" + lCode + "\" of the nToc# " +
968  QString("").setNum(nToc) + " has been removed");
969 */
970 };
971 
972 
973 
974 //
975 void VcCalc2SessionIfc::delR_obsolete(UNUSED const QString& lCode, UNUSED short nToc)
976 {
977 /*
978  logger->write(SgLogger::DBG, SgLogger::IO, className() +
979  "::delR_obsolete(): the known obsolete LCode \"" + lCode + "\" of the nToc# " +
980  QString("").setNum(nToc) + " has been removed");
981 */
982 };
983 //
984 
985 
986 
987 
988 
989 
990 
991 // Gets:
992 // known getAs:
993 //
995  short dim1, short dim2, short dim3, short actualDimension[])
996 {
997  char b;
998  int strLen;
999  int valIdx=0;
1000  for (StationsByName_it it=session_->stationsByName().begin(); it!=session_->stationsByName().end();
1001  ++it)
1002  {
1003  const QString& key=it.value()->getKey();
1004  strLen = key.size();
1005  for (int i=0; i<8; i++)
1006  {
1007  b = i<strLen?key.at(i).toLatin1():0;
1008  *(values + valIdx++) = b==0?' ':b;
1009  };
1010  };
1011  actualDimension[0] = 4;
1012  actualDimension[1] = session_->stationsByName().size();
1013  actualDimension[2] = 1;
1014  if (dim1==actualDimension[0] && dim2==actualDimension[1] && dim3==actualDimension[2])
1015  return 0;
1016  else
1017  return 2;
1018 };
1019 
1020 
1021 
1022 //
1024  short dim1, short dim2, short dim3, short actualDimension[])
1025 {
1026  char b;
1027  int strLen;
1028  int valIdx=0;
1029  for (SourcesByName_it it=session_->sourcesByName().begin(); it!=session_->sourcesByName().end();
1030  ++it)
1031  {
1032  const QString& key=it.value()->getKey();
1033  strLen = key.size();
1034  for (int i=0; i<8; i++)
1035  {
1036  b = i<strLen?key.at(i).toLatin1():0;
1037  *(values + valIdx++) = b==0?' ':b;
1038  };
1039  };
1040  actualDimension[0] = 4;
1041  actualDimension[1] = session_->sourcesByName().size();
1042  actualDimension[2] = 1;
1043  if (dim1==actualDimension[0] && dim2==actualDimension[1] && dim3==actualDimension[2])
1044  return 0;
1045  else
1046  return 2;
1047 };
1048 
1049 
1050 
1051 //
1053  short dim1, short dim2, short dim3, short actualDimension[])
1054 {
1056  {
1058  "::getA_baseline(): the obs.index (" + QString("").setNum(obsIdx_) +
1059  ") is out of range [0..." + QString("").setNum(numOfObservations_) + "]");
1060  return 4;
1061  };
1062  char b;
1063  int strLen;
1064  int valIdx=0;
1065  const QString& stn1=session_->observations().at(obsIdx_)->stn_1()->getKey();
1066  strLen = stn1.size();
1067  for (int i=0; i<8; i++)
1068  {
1069  b = i<strLen?stn1.at(i).toLatin1():0;
1070  *(values + valIdx++) = b==0?' ':b;
1071  };
1072  const QString& stn2=session_->observations().at(obsIdx_)->stn_2()->getKey();
1073  strLen = stn2.size();
1074  for (int i=0; i<8; i++)
1075  {
1076  b = i<strLen?stn2.at(i).toLatin1():0;
1077  *(values + valIdx++) = b==0?' ':b;
1078  };
1079 
1080  actualDimension[0] = 4;
1081  actualDimension[1] = 2;
1082  actualDimension[2] = 1;
1083  if (dim1==actualDimension[0] && dim2==actualDimension[1] && dim3==actualDimension[2])
1084  return 0;
1085  else
1086  return 2;
1087 };
1088 
1089 
1090 
1091 //
1093  short dim1, short dim2, short dim3, short actualDimension[])
1094 {
1096  {
1098  "::getA_starId(): the obs.index (" + QString("").setNum(obsIdx_) +
1099  ") is out of range [0..." + QString("").setNum(numOfObservations_) + "]");
1100  return 4;
1101  };
1102  char b;
1103  int strLen;
1104  int valIdx=0;
1105  const QString& src=session_->observations().at(obsIdx_)->src()->getKey();
1106  strLen = src.size();
1107  for (int i=0; i<8; i++)
1108  {
1109  b = i<strLen?src.at(i).toLatin1():0;
1110  *(values + valIdx++) = b==0?' ':b;
1111  };
1112  actualDimension[0] = 4;
1113  actualDimension[1] = 1;
1114  actualDimension[2] = 1;
1115  if (dim1==actualDimension[0] && dim2==actualDimension[1] && dim3==actualDimension[2])
1116  return 0;
1117  else
1118  return 2;
1119 };
1120 
1121 
1122 
1123 
1124 
1125 
1126 // known getIs:
1127 //
1128 short VcCalc2SessionIfc::getI_numSites(short values[], short dim1, short dim2, short dim3,
1129  short actualDimension[])
1130 {
1131  values[0] = session_->stationsByName().size();
1132  actualDimension[0] = actualDimension[1] = actualDimension[2] = 1;
1133  if (dim1==actualDimension[0] && dim2==actualDimension[1] && dim3==actualDimension[2])
1134  return 0;
1135  else
1136  return 2;
1137 };
1138 
1139 
1140 
1141 //
1142 short VcCalc2SessionIfc::getI_numStars(short values[],
1143  short dim1, short dim2, short dim3, short actualDimension[])
1144 {
1145  values[0] = session_->sourcesByName().size();
1146  actualDimension[0] = actualDimension[1] = actualDimension[2] = 1;
1147  if (dim1==actualDimension[0] && dim2==actualDimension[1] && dim3==actualDimension[2])
1148  return 0;
1149  else
1150  return 2;
1151 };
1152 
1153 
1154 
1155 //
1156 short VcCalc2SessionIfc::getI_intrval4(short values[],
1157  short dim1, short dim2, short dim3, short actualDimension[])
1158 {
1159  SgMJD tFirst(*session_->observations().first());
1160  SgMJD tLast (*session_->observations().last ());
1161  int nE[5];
1162  double d;
1163  tFirst.toYMDHMS_tr(nE[0], nE[1], nE[2], nE[3], nE[4], d);
1164  for (int i=0; i<5; i++)
1165  *(values + i) = nE[i];
1166  tLast.toYMDHMS_tr(nE[0], nE[1], nE[2], nE[3], nE[4], d);
1167  for (int i=0; i<5; i++)
1168  *(values + 5 + i) = nE[i];
1169  actualDimension[0] = 5;
1170  actualDimension[1] = 2;
1171  actualDimension[2] = 1;
1172  if (dim1==actualDimension[0] && dim2==actualDimension[1] && dim3==actualDimension[2])
1173  return 0;
1174  else
1175  return 2;
1176 };
1177 
1178 
1179 
1180 //
1181 short VcCalc2SessionIfc::getI_utc_tag2(short values[],
1182  short dim1, short dim2, short dim3, short actualDimension[])
1183 {
1185  {
1187  "::getI_utc_tag2(): the obs.index (" + QString("").setNum(obsIdx_) +
1188  ") is out of range [0..." + QString("").setNum(numOfObservations_) + "]");
1189  return 4;
1190  };
1191  SgMJD t(*session_->observations().at(obsIdx_));
1192  int nE[5];
1193  double d;
1194  t.toYMDHMS_tr(nE[0], nE[1], nE[2], nE[3], nE[4], d);
1195  nE[0] %= 100;
1196  for (int i=0; i<5; i++)
1197  *(values + i) = nE[i];
1198  if (dim1==6)
1199  {
1200  *(values + 5) = round(d);
1201  actualDimension[0] = 6;
1202  }
1203  else
1204  actualDimension[0] = 5;
1205  actualDimension[1] = 1;
1206  actualDimension[2] = 1;
1207  if (dim1==actualDimension[0] && dim2==actualDimension[1] && dim3==actualDimension[2])
1208  return 0;
1209  else
1210  return 2;
1211 };
1212 
1213 
1214 
1215 //
1216 short VcCalc2SessionIfc::getI_utc_tag4(short values[],
1217  short dim1, short dim2, short dim3, short actualDimension[])
1218 {
1220  {
1222  "::getI_utc_tag4(): the obs.index (" + QString("").setNum(obsIdx_) +
1223  ") is out of range [0..." + QString("").setNum(numOfObservations_) + "]");
1224  return 4;
1225  };
1226  SgMJD t(*session_->observations().at(obsIdx_));
1227  int nE[5];
1228  double d;
1229  t.toYMDHMS_tr(nE[0], nE[1], nE[2], nE[3], nE[4], d);
1230  for (int i=0; i<5; i++)
1231  *(values + i) = nE[i];
1232  if (dim1==6)
1233  {
1234  *(values + 5) = round(d);
1235  actualDimension[0] = 6;
1236  }
1237  else
1238  actualDimension[0] = 5;
1239  actualDimension[1] = 1;
1240  actualDimension[2] = 1;
1241  if (dim1==actualDimension[0] && dim2==actualDimension[1] && dim3==actualDimension[2])
1242  return 0;
1243  else
1244  return 2;
1245 };
1246 
1247 
1248 
1249 // known get4s:
1250 //
1251 short VcCalc2SessionIfc::get4_rotEpoch(double values[],
1252  short dim1, short dim2, short dim3, short actualDimension[])
1253 {
1254  values[0 ] = 0.0;
1255  values[0 + 1] = 0.0;
1256  values[0 + 2] = 0.0;
1257  values[0 + 3] = 0.0;
1258  actualDimension[0] = 2;
1259  actualDimension[1] = 2;
1260  actualDimension[2] = 1;
1261  if (dim1==actualDimension[0] && dim2==actualDimension[1] && dim3==actualDimension[2])
1262  return 0;
1263  else
1264 // return 2;
1265  return 0;
1266 };
1267 
1268 
1269 
1270 //
1271 short VcCalc2SessionIfc::get4_sec_Tag(double values[],
1272  short dim1, short dim2, short dim3, short actualDimension[])
1273 {
1275  {
1277  "::get4_sec_Tag(): the obs.index (" + QString("").setNum(obsIdx_) +
1278  ") is out of range [0..." + QString("").setNum(numOfObservations_) + "]");
1279  return 4;
1280  };
1281  SgMJD t(*session_->observations().at(obsIdx_));
1282  int nE[5];
1283  double d;
1284  t.toYMDHMS_tr(nE[0], nE[1], nE[2], nE[3], nE[4], d);
1285  *values = d;
1286  actualDimension[0] = 1;
1287  actualDimension[1] = 1;
1288  actualDimension[2] = 1;
1289  if (dim1==actualDimension[0] && dim2==actualDimension[1] && dim3==actualDimension[2])
1290  return 0;
1291  else
1292  return 2;
1293 };
1294 
1295 
1296 
1297 //
1298 short VcCalc2SessionIfc::get4_ref_freq(double values[],
1299  short dim1, short dim2, short dim3, short actualDimension[])
1300 {
1302  {
1304  "::get4_ref_freq(): the obs.index (" + QString("").setNum(obsIdx_) +
1305  ") is out of range [0..." + QString("").setNum(numOfObservations_) + "]");
1306  return 4;
1307  };
1308  values[0] = o_?o_->getReferenceFrequency():1.0;
1309  actualDimension[0] = 1;
1310  actualDimension[1] = 1;
1311  actualDimension[2] = 1;
1312  if (dim1==actualDimension[0] && dim2==actualDimension[1] && dim3==actualDimension[2])
1313  return 0;
1314  else
1315  return 2;
1316 };
1317 
1318 
1319 
1320 
1321 //
1322 // known putAs:
1323 //
1324 void VcCalc2SessionIfc::putA_calcFlgN(const char values[], short dim1, short dim2, short dim3)
1325 {
1326  if (!(dim1==2 && dim3==1))
1327  {
1329  "::putA_calcFlgN(): the dimensions (" + QString("").setNum(dim1) +
1330  "," + QString("").setNum(dim2) + "," + QString("").setNum(dim3) +
1331  ") are unexpected");
1332  return;
1333  };
1334  //
1336  flagNames.clear();
1337  for (int i=0; i<dim2; i++)
1338  flagNames.append(fortArray2QString(values + 4*i, 4));
1339 };
1340 
1341 
1342 
1343 //
1344 void VcCalc2SessionIfc::putA_atm_mess(const char values[], short dim1, short dim2, short dim3)
1345 {
1346  if (!(dim2==1 && dim3==1))
1347  {
1349  "::putA_atm_mess(): the dimensions (" + QString("").setNum(dim1) +
1350  "," + QString("").setNum(dim2) + "," + QString("").setNum(dim3) +
1351  ") are unexpected");
1352  return;
1353  };
1354  //
1355  session_->calcInfo().troposphere().setDefinition(fortArray2QString(values, dim1*2).simplified());
1356 };
1357 
1358 
1359 
1360 //
1361 void VcCalc2SessionIfc::putA_atm_cFlg(const char values[], short dim1, short dim2, short dim3)
1362 {
1363  if (!(dim2==1 && dim3==1))
1364  {
1366  "::putA_atm_cFlg(): the dimensions (" + QString("").setNum(dim1) +
1367  "," + QString("").setNum(dim2) + "," + QString("").setNum(dim3) +
1368  ") are unexpected");
1369  return;
1370  };
1371  //
1372  session_->calcInfo().troposphere().setControlFlag(fortArray2QString(values, dim1*2).simplified());
1373 };
1374 
1375 
1376 
1377 //
1378 void VcCalc2SessionIfc::putA_axo_mess(const char values[], short dim1, short dim2, short dim3)
1379 {
1380  if (!(dim2==1 && dim3==1))
1381  {
1383  "::putA_axo_mess(): the dimensions (" + QString("").setNum(dim1) +
1384  "," + QString("").setNum(dim2) + "," + QString("").setNum(dim3) +
1385  ") are unexpected");
1386  return;
1387  };
1388  //
1389  session_->calcInfo().axisOffset().setDefinition(fortArray2QString(values, dim1*2).simplified());
1390 };
1391 
1392 
1393 
1394 //
1395 void VcCalc2SessionIfc::putA_axo_cFlg(const char values[], short dim1, short dim2, short dim3)
1396 {
1397  if (!(dim2==1 && dim3==1))
1398  {
1400  "::putA_axo_cFlg(): the dimensions (" + QString("").setNum(dim1) +
1401  "," + QString("").setNum(dim2) + "," + QString("").setNum(dim3) +
1402  ") are unexpected");
1403  return;
1404  };
1405  //
1406  session_->calcInfo().axisOffset().setControlFlag(fortArray2QString(values, dim1*2).simplified());
1407 };
1408 
1409 
1410 
1411 //
1412 void VcCalc2SessionIfc::putA_etd_mess(const char values[], short dim1, short dim2, short dim3)
1413 {
1414  if (!(dim2==1 && dim3==1))
1415  {
1417  "::putA_etd_mess(): the dimensions (" + QString("").setNum(dim1) +
1418  "," + QString("").setNum(dim2) + "," + QString("").setNum(dim3) +
1419  ") are unexpected");
1420  return;
1421  };
1422  //
1423  session_->calcInfo().earthTide().setDefinition(fortArray2QString(values, dim1*2).simplified());
1424 };
1425 
1426 
1427 
1428 //
1429 void VcCalc2SessionIfc::putA_etd_cFlg(const char values[], short dim1, short dim2, short dim3)
1430 {
1431  if (!(dim2==1 && dim3==1))
1432  {
1434  "::putA_etd_cFlg(): the dimensions (" + QString("").setNum(dim1) +
1435  "," + QString("").setNum(dim2) + "," + QString("").setNum(dim3) +
1436  ") are unexpected");
1437  return;
1438  };
1439  //
1440  session_->calcInfo().earthTide().setControlFlag(fortArray2QString(values, dim1*2).simplified());
1441 };
1442 
1443 
1444 
1445 //
1446 void VcCalc2SessionIfc::putA_ptd_mess(const char values[], short dim1, short dim2, short dim3)
1447 {
1448  if (!(dim2==1 && dim3==1))
1449  {
1451  "::putA_ptd_mess(): the dimensions (" + QString("").setNum(dim1) +
1452  "," + QString("").setNum(dim2) + "," + QString("").setNum(dim3) +
1453  ") are unexpected");
1454  return;
1455  };
1456  //
1457  session_->calcInfo().poleTide().setDefinition(fortArray2QString(values, dim1*2).simplified());
1458 };
1459 
1460 
1461 
1462 //
1463 void VcCalc2SessionIfc::putA_ptd_cFlg(const char values[], short dim1, short dim2, short dim3)
1464 {
1465  if (!(dim2==1 && dim3==1))
1466  {
1468  "::putA_ptd_cFlg(): the dimensions (" + QString("").setNum(dim1) +
1469  "," + QString("").setNum(dim2) + "," + QString("").setNum(dim3) +
1470  ") are unexpected");
1471  return;
1472  };
1473  //
1474  session_->calcInfo().poleTide().setControlFlag(fortArray2QString(values, dim1*2).simplified());
1475 };
1476 
1477 
1478 
1479 //
1480 void VcCalc2SessionIfc::putA_nut_mess(const char values[], short dim1, short dim2, short dim3)
1481 {
1482  if (!(dim2==1 && dim3==1))
1483  {
1485  "::putA_nut_mess(): the dimensions (" + QString("").setNum(dim1) +
1486  "," + QString("").setNum(dim2) + "," + QString("").setNum(dim3) +
1487  ") are unexpected");
1488  return;
1489  };
1490  //
1491  session_->calcInfo().nutation().setDefinition(fortArray2QString(values, dim1*2).simplified());
1492 };
1493 
1494 
1495 
1496 
1497 void VcCalc2SessionIfc::putA_nut_cFlg(const char values[], short dim1, short dim2, short dim3)
1498 {
1499  if (!(dim2==1 && dim3==1))
1500  {
1502  "::putA_nut_cFlg(): the dimensions (" + QString("").setNum(dim1) +
1503  "," + QString("").setNum(dim2) + "," + QString("").setNum(dim3) +
1504  ") are unexpected");
1505  return;
1506  };
1507  //
1508  session_->calcInfo().nutation().setControlFlag(fortArray2QString(values, dim1*2).simplified());
1509 };
1510 
1511 
1512 
1513 //
1514 void VcCalc2SessionIfc::putA_oce_mess(const char values[], short dim1, short dim2, short dim3)
1515 {
1516  if (!(dim2==1 && dim3==1))
1517  {
1519  "::putA_oce_mess(): the dimensions (" + QString("").setNum(dim1) +
1520  "," + QString("").setNum(dim2) + "," + QString("").setNum(dim3) +
1521  ") are unexpected");
1522  return;
1523  };
1524  //
1525  session_->calcInfo().oceanLoading().setDefinition(fortArray2QString(values, dim1*2).simplified());
1526 };
1527 
1528 
1529 
1530 //
1531 void VcCalc2SessionIfc::putA_oce_cFlg(const char values[], short dim1, short dim2, short dim3)
1532 {
1533  if (!(dim2==1 && dim3==1))
1534  {
1536  "::putA_oce_cFlg(): the dimensions (" + QString("").setNum(dim1) +
1537  "," + QString("").setNum(dim2) + "," + QString("").setNum(dim3) +
1538  ") are unexpected");
1539  return;
1540  };
1541  //
1542  session_->calcInfo().oceanLoading().setControlFlag(fortArray2QString(values, dim1*2).simplified());
1543 };
1544 
1545 
1546 
1547 //
1548 void VcCalc2SessionIfc::putA_ati_mess(const char values[], short dim1, short dim2, short dim3)
1549 {
1550  if (!(dim2==1 && dim3==1))
1551  {
1553  "::putA_ati_mess(): the dimensions (" + QString("").setNum(dim1) +
1554  "," + QString("").setNum(dim2) + "," + QString("").setNum(dim3) +
1555  ") are unexpected");
1556  return;
1557  };
1558  //
1559  session_->calcInfo().atomicTime().setDefinition(fortArray2QString(values, dim1*2).simplified());
1560 };
1561 
1562 
1563 
1564 //
1565 void VcCalc2SessionIfc::putA_ati_cFlg(const char values[], short dim1, short dim2, short dim3)
1566 {
1567  if (!(dim2==1 && dim3==1))
1568  {
1570  "::putA_ati_cFlg(): the dimensions (" + QString("").setNum(dim1) +
1571  "," + QString("").setNum(dim2) + "," + QString("").setNum(dim3) +
1572  ") are unexpected");
1573  return;
1574  };
1575  //
1576  session_->calcInfo().atomicTime().setControlFlag(fortArray2QString(values, dim1*2).simplified());
1577 };
1578 
1579 
1580 
1581 //
1582 void VcCalc2SessionIfc::putA_cti_mess(const char values[], short dim1, short dim2, short dim3)
1583 {
1584  if (!(dim2==1 && dim3==1))
1585  {
1587  "::putA_cti_mess(): the dimensions (" + QString("").setNum(dim1) +
1588  "," + QString("").setNum(dim2) + "," + QString("").setNum(dim3) +
1589  ") are unexpected");
1590  return;
1591  };
1592  //
1593  session_->calcInfo().coordinateTime().setDefinition(fortArray2QString(values, dim1*2).simplified());
1594 };
1595 
1596 
1597 
1598 //
1599 void VcCalc2SessionIfc::putA_cti_cFlg(const char values[], short dim1, short dim2, short dim3)
1600 {
1601  if (!(dim2==1 && dim3==1))
1602  {
1604  "::putA_cti_cFlg(): the dimensions (" + QString("").setNum(dim1) +
1605  "," + QString("").setNum(dim2) + "," + QString("").setNum(dim3) +
1606  ") are unexpected");
1607  return;
1608  };
1609  //
1610  session_->calcInfo().coordinateTime().setControlFlag(fortArray2QString(values, dim1*2).simplified());
1611 };
1612 
1613 
1614 
1615 //
1616 void VcCalc2SessionIfc::putA_plx_mess(const char values[], short dim1, short dim2, short dim3)
1617 {
1618  if (!(dim2==1 && dim3==1))
1619  {
1621  "::putA_plx_mess(): the dimensions (" + QString("").setNum(dim1) +
1622  "," + QString("").setNum(dim2) + "," + QString("").setNum(dim3) +
1623  ") are unexpected");
1624  return;
1625  };
1626  //
1627  session_->calcInfo().parallax().setDefinition(fortArray2QString(values, dim1*2).simplified());
1628 };
1629 
1630 
1631 
1632 //
1633 void VcCalc2SessionIfc::putA_plx_cFlg(const char values[], short dim1, short dim2, short dim3)
1634 {
1635  if (!(dim2==1 && dim3==1))
1636  {
1638  "::putA_plx_cFlg(): the dimensions (" + QString("").setNum(dim1) +
1639  "," + QString("").setNum(dim2) + "," + QString("").setNum(dim3) +
1640  ") are unexpected");
1641  return;
1642  };
1643  //
1644  session_->calcInfo().parallax().setControlFlag(fortArray2QString(values, dim1*2).simplified());
1645 };
1646 
1647 
1648 
1649 //
1650 void VcCalc2SessionIfc::putA_str_mess(const char values[], short dim1, short dim2, short dim3)
1651 {
1652  if (!(dim2==1 && dim3==1))
1653  {
1655  "::putA_str_mess(): the dimensions (" + QString("").setNum(dim1) +
1656  "," + QString("").setNum(dim2) + "," + QString("").setNum(dim3) +
1657  ") are unexpected");
1658  return;
1659  };
1660  //
1661  session_->calcInfo().star().setDefinition(fortArray2QString(values, dim1*2).simplified());
1662 };
1663 
1664 
1665 
1666 //
1667 void VcCalc2SessionIfc::putA_str_cFlg(const char values[], short dim1, short dim2, short dim3)
1668 {
1669  if (!(dim2==1 && dim3==1))
1670  {
1672  "::putA_str_cFlg(): the dimensions (" + QString("").setNum(dim1) +
1673  "," + QString("").setNum(dim2) + "," + QString("").setNum(dim3) +
1674  ") are unexpected");
1675  return;
1676  };
1677  //
1678  session_->calcInfo().star().setControlFlag(fortArray2QString(values, dim1*2).simplified());
1679 };
1680 
1681 
1682 
1683 //
1684 void VcCalc2SessionIfc::putA_the_mess(const char values[], short dim1, short dim2, short dim3)
1685 {
1686  if (!(dim2==1 && dim3==1))
1687  {
1689  "::putA_the_mess(): the dimensions (" + QString("").setNum(dim1) +
1690  "," + QString("").setNum(dim2) + "," + QString("").setNum(dim3) +
1691  ") are unexpected");
1692  return;
1693  };
1694  //
1695  session_->calcInfo().relativity().setDefinition(fortArray2QString(values, dim1*2).simplified());
1696 };
1697 
1698 
1699 
1700 //
1701 void VcCalc2SessionIfc::putA_rel_cFlg(const char values[], short dim1, short dim2, short dim3)
1702 {
1703  if (!(dim2==1 && dim3==1))
1704  {
1706  "::putA_rel_cFlg(): the dimensions (" + QString("").setNum(dim1) +
1707  "," + QString("").setNum(dim2) + "," + QString("").setNum(dim3) +
1708  ") are unexpected");
1709  return;
1710  };
1711  //
1712  session_->calcInfo().relativity().setControlFlag(fortArray2QString(values, dim1*2).simplified());
1713 };
1714 
1715 
1716 
1717 //
1718 void VcCalc2SessionIfc::putA_pan_mess(const char values[], short dim1, short dim2, short dim3)
1719 {
1720  if (!(dim2==1 && dim3==1))
1721  {
1723  "::putA_pan_mess(): the dimensions (" + QString("").setNum(dim1) +
1724  "," + QString("").setNum(dim2) + "," + QString("").setNum(dim3) +
1725  ") are unexpected");
1726  return;
1727  };
1728  //
1729  session_->calcInfo().feedHorn().setDefinition(fortArray2QString(values, dim1*2).simplified());
1730 };
1731 
1732 
1733 
1734 //
1735 void VcCalc2SessionIfc::putA_sit_mess(const char values[], short dim1, short dim2, short dim3)
1736 {
1737  if (!(dim2==1 && dim3==1))
1738  {
1740  "::putA_sit_mess(): the dimensions (" + QString("").setNum(dim1) +
1741  "," + QString("").setNum(dim2) + "," + QString("").setNum(dim3) +
1742  ") are unexpected");
1743  return;
1744  };
1745  //
1746  session_->calcInfo().site().setDefinition(fortArray2QString(values, dim1*2).simplified());
1747 };
1748 
1749 
1750 
1751 //
1752 void VcCalc2SessionIfc::putA_pep_mess(const char values[], short dim1, short dim2, short dim3)
1753 {
1754  if (!(dim2==1 && dim3==1))
1755  {
1757  "::putA_pep_mess(): the dimensions (" + QString("").setNum(dim1) +
1758  "," + QString("").setNum(dim2) + "," + QString("").setNum(dim3) +
1759  ") are unexpected");
1760  return;
1761  };
1762  //
1763  session_->calcInfo().ephemeris().setDefinition(fortArray2QString(values, dim1*2).simplified());
1764 };
1765 
1766 
1767 
1768 //
1769 void VcCalc2SessionIfc::putA_wob_mess(const char values[], short dim1, short dim2, short dim3)
1770 {
1771  if (!(dim2==1 && dim3==1))
1772  {
1774  "::putA_wob_mess(): the dimensions (" + QString("").setNum(dim1) +
1775  "," + QString("").setNum(dim2) + "," + QString("").setNum(dim3) +
1776  ") are unexpected");
1777  return;
1778  };
1779  //
1780  session_->calcInfo().polarMotion().setDefinition(fortArray2QString(values, dim1*2).simplified());
1782  setDefinition(fortArray2QString(values, dim1*2).simplified());
1783 };
1784 
1785 
1786 
1787 //
1788 void VcCalc2SessionIfc::putA_wob_cFlg(const char values[], short dim1, short dim2, short dim3)
1789 {
1790  if (!(dim2==1 && dim3==1))
1791  {
1793  "::putA_wob_cFlg(): the dimensions (" + QString("").setNum(dim1) +
1794  "," + QString("").setNum(dim2) + "," + QString("").setNum(dim3) +
1795  ") are unexpected");
1796  return;
1797  };
1798  //
1799  session_->calcInfo().polarMotion().setControlFlag(fortArray2QString(values, dim1*2).simplified());
1800 };
1801 
1802 
1803 
1804 //
1805 void VcCalc2SessionIfc::putA_ut1_mess(const char values[], short dim1, short dim2, short dim3)
1806 {
1807  if (!(dim2==1 && dim3==1))
1808  {
1810  "::putA_ut1_mess(): the dimensions (" + QString("").setNum(dim1) +
1811  "," + QString("").setNum(dim2) + "," + QString("").setNum(dim3) +
1812  ") are unexpected");
1813  return;
1814  };
1815  //
1816  session_->calcInfo().ut1().setDefinition(fortArray2QString(values, dim1*2).simplified());
1817  session_->calcInfo().ut1Interpolation().setDefinition(fortArray2QString(values, dim1*2).simplified());
1818 };
1819 
1820 
1821 
1822 //
1823 void VcCalc2SessionIfc::putA_ut1_cFlg(const char values[], short dim1, short dim2, short dim3)
1824 {
1825  if (!(dim2==1 && dim3==1))
1826  {
1828  "::putA_ut1_cFlg(): the dimensions (" + QString("").setNum(dim1) +
1829  "," + QString("").setNum(dim2) + "," + QString("").setNum(dim3) +
1830  ") are unexpected");
1831  return;
1832  };
1833  //
1834  session_->calcInfo().ut1().setControlFlag(fortArray2QString(values, dim1*2).simplified());
1835 };
1836 
1837 
1838 
1839 //
1840 void VcCalc2SessionIfc::putA_oce_stat(const char values[], short dim1, short dim2, short dim3)
1841 {
1842  if (!(dim2==numOfStations_ && dim3==1))
1843  {
1845  "::putA_oce_stat(): the dimensions (" + QString("").setNum(dim1) +
1846  "," + QString("").setNum(dim2) + "," + QString("").setNum(dim3) +
1847  ") are unexpected");
1848  return;
1849  };
1850  //
1852  statuses.clear();
1853  for (int i=0; i<numOfStations_; i++)
1854  statuses.append(fortArray2QString(values + dim1*2*i, dim1*2));
1855 };
1856 
1857 
1858 
1859 //
1860 void VcCalc2SessionIfc::putA_ut1Intrp(const char values[], short dim1, short dim2, short dim3)
1861 {
1862  if (!(dim2==1 && dim3==1))
1863  {
1865  "::putA_ut1Intrp(): the dimensions (" + QString("").setNum(dim1) +
1866  "," + QString("").setNum(dim2) + "," + QString("").setNum(dim3) +
1867  ") are unexpected");
1868  return;
1869  };
1870  //
1871  session_->calcInfo().ut1Interpolation().setControlFlag(fortArray2QString(values, dim1*2).simplified());
1872 };
1873 
1874 
1875 
1876 //
1877 void VcCalc2SessionIfc::putA_fUt1Text(const char values[], short dim1, short dim2, short dim3)
1878 {
1879  if (!(dim2==1 && dim3==1))
1880  {
1882  "::putA_fUt1Text(): the dimensions (" + QString("").setNum(dim1) +
1883  "," + QString("").setNum(dim2) + "," + QString("").setNum(dim3) +
1884  ") are unexpected");
1885  return;
1886  };
1887  //
1888  session_->calcInfo().ut1Interpolation().setOrigin(fortArray2QString(values, dim1*2).simplified());
1889 };
1890 
1891 
1892 
1893 //
1894 void VcCalc2SessionIfc::putA_wobIntrp(const char values[], short dim1, short dim2, short dim3)
1895 {
1896  if (!(dim2==1 && dim3==1))
1897  {
1899  "::putA_wobIntrp(): the dimensions (" + QString("").setNum(dim1) +
1900  "," + QString("").setNum(dim2) + "," + QString("").setNum(dim3) +
1901  ") are unexpected");
1902  return;
1903  };
1904  //
1906  setControlFlag(fortArray2QString(values, dim1*2).simplified());
1907 };
1908 
1909 
1910 
1911 //
1912 void VcCalc2SessionIfc::putA_fWobText(const char values[], short dim1, short dim2, short dim3)
1913 {
1914  if (!(dim2==1 && dim3==1))
1915  {
1917  "::putA_fWobText(): the dimensions (" + QString("").setNum(dim1) +
1918  "," + QString("").setNum(dim2) + "," + QString("").setNum(dim3) +
1919  ") are unexpected");
1920  return;
1921  };
1922  //
1924  setOrigin(fortArray2QString(values, dim1*2).simplified());
1925 };
1926 
1927 
1928 
1929 //
1930 void VcCalc2SessionIfc::putA_star_ref(const char values[], short dim1, short dim2, short dim3)
1931 {
1932  if (!(dim2==numOfSources_ && dim3==1))
1933  {
1935  "::putA_star_ref(): the dimensions (" + QString("").setNum(dim1) +
1936  "," + QString("").setNum(dim2) + "," + QString("").setNum(dim3) +
1937  ") are unexpected");
1938  return;
1939  };
1940  int idx=0;
1941  for (SourcesByName_it it=session_->sourcesByName().begin(); it!=session_->sourcesByName().end(); ++it)
1942  {
1943  SgVlbiSourceInfo *src=it.value();
1944  src->setAprioriReference(fortArray2QString(values + dim1*2*idx, dim1*2).simplified());
1945  idx++;
1946  };
1947 };
1948 
1949 
1950 
1951 //
1952 void VcCalc2SessionIfc::putA_tectPlNm(const char values[], short dim1, short dim2, short dim3)
1953 {
1954  if (!(dim2==numOfStations_ && dim3==1))
1955  {
1957  "::putA_tectPlNm(): the dimensions (" + QString("").setNum(dim1) +
1958  "," + QString("").setNum(dim2) + "," + QString("").setNum(dim3) +
1959  ") are unexpected");
1960  return;
1961  };
1962  int idx=0;
1963  for (StationsByName_it it=session_->stationsByName().begin(); it!=session_->stationsByName().end();
1964  ++it)
1965  {
1966  SgVlbiStationInfo *stn=it.value();
1967  stn->setTectonicPlateName(fortArray2QString(values + dim1*2*idx, dim1*2).simplified());
1968  idx++;
1969  };
1970 };
1971 
1972 
1973 
1974 //
1975 void VcCalc2SessionIfc::putA_obsolete(UNUSED const char values[],
1976  UNUSED short dim1, UNUSED short UNUSED dim2, UNUSED short dim3)
1977 {
1978 };
1979 
1980 
1981 
1982 
1983 
1984 
1985 
1986 
1987 
1988 //
1989 // known putIs:
1990 //
1991 
1992 
1993 void VcCalc2SessionIfc::putI_calcFlgV(const short values[], short dim1, short dim2, short dim3)
1994 {
1995  if (!(dim2==1 && dim3==1))
1996  {
1998  "::putI_calcFlgV(): the dimensions (" + QString("").setNum(dim1) +
1999  "," + QString("").setNum(dim2) + "," + QString("").setNum(dim3) +
2000  ") are unexpected");
2001  return;
2002  };
2003  //
2005  flagVals.clear();
2006  for (int i=0; i<dim1; i++)
2007  flagVals.append(values[i]);
2008 };
2009 
2010 
2011 
2012 //
2013 void VcCalc2SessionIfc::putI_tidalUt1(const short values[], short dim1, short dim2, short dim3)
2014 {
2015  if (!(dim2==1 && dim3==1))
2016  {
2018  "::putI_tidalUt1(): the dimensions (" + QString("").setNum(dim1) +
2019  "," + QString("").setNum(dim2) + "," + QString("").setNum(dim3) +
2020  ") are unexpected");
2021  return;
2022  };
2023  //
2024  session_->calcInfo().setFlagTidalUt1(values[0]);
2025 };
2026 
2027 
2028 
2029 //
2030 void VcCalc2SessionIfc::putI_axisTyps(const short values[], short dim1, short dim2, short dim3)
2031 {
2032  if (!(dim1==numOfStations_ && dim2==1 && dim3==1))
2033  {
2035  "::putI_axisTyps(): the dimensions (" + QString("").setNum(dim1) +
2036  "," + QString("").setNum(dim2) + "," + QString("").setNum(dim3) +
2037  ") are unexpected");
2038  return;
2039  };
2040  int idx=0;
2043  for (StationsByName_it it=session_->stationsByName().begin(); it!=session_->stationsByName().end();
2044  ++it)
2045  {
2046  SgVlbiStationInfo *stn=it.value();
2047  switch (values[idx])
2048  {
2049  case 1:
2051  break;
2052  case 2:
2054  break;
2055  case 3:
2057  break;
2058  case 4:
2060  break;
2061  case 5:
2063  break;
2064  default:
2067  "::putI_axisTyps(): got unknown value for the axis type (" +
2068  QString("").setNum(values[idx]) + ") for the station #" + QString("").setNum(idx));
2069  break;
2070  };
2071  stn->setMntType(mnt);
2072  idx++;
2073  };
2074 };
2075 
2076 
2077 
2078 
2079 
2080 //
2081 // known putRs:
2082 //
2083 
2084 
2085 //
2086 void VcCalc2SessionIfc::putR_siteZens(const double values[], short dim1, short dim2, short dim3)
2087 {
2088  if (!(dim1==numOfStations_ && dim2==1 && dim3==1))
2089  {
2091  "::putR_siteZens(): the dimensions (" + QString("").setNum(dim1) +
2092  "," + QString("").setNum(dim2) + "," + QString("").setNum(dim3) +
2093  ") are unexpected");
2094  return;
2095  };
2096  session_->calcInfo().siteZenDelays().clear();
2097  for (int i=0; i<numOfStations_; i++)
2098  session_->calcInfo().siteZenDelays().append(values[i]);
2099 };
2100 
2101 
2102 
2103 //
2104 void VcCalc2SessionIfc::putR_optlCoef(const double values[], short dim1, short dim2, short dim3)
2105 {
2106  int n=session_->calcInfo().stations().size();
2107  if (!(dim1==6 && dim2==n && dim3==1))
2108  {
2110  "::putR_optlCoef(): the dimensions (" + QString("").setNum(dim1) +
2111  "," + QString("").setNum(dim2) + "," + QString("").setNum(dim3) +
2112  ") are unexpected");
2113  return;
2114  };
2115  for (int i=0; i<n; i++)
2116  {
2118  if (si)
2119  {
2120  for (int j=0; j<dim1; j++)
2121  si->setOptLoadCoeff(j, values[6*i + j]);
2122  }
2123  else
2125  "::putR_optlCoef(): the station # " + QString("").setNum(i) + " is NULL");
2126  };
2127 };
2128 
2129 
2130 
2131 //
2132 void VcCalc2SessionIfc::putR_sitOcPhs(const double values[], short dim1, short dim2, short dim3)
2133 {
2134  int n=session_->calcInfo().stations().size();
2135  if (!(dim1==11 && dim2==n && dim3==1))
2136  {
2138  "::putR_sitOcPhs(): the dimensions (" + QString("").setNum(dim1) +
2139  "," + QString("").setNum(dim2) + "," + QString("").setNum(dim3) +
2140  ") are unexpected");
2141  return;
2142  };
2143  for (int i=0; i<n; i++)
2144  {
2146  if (si)
2147  {
2148  for (int j=0; j<dim1; j++)
2149  si->setOLoadPhase(j, 0, values[dim1*i + j]);
2150  }
2151  else
2153  "::putR_sitOcPhs(): the station # " + QString("").setNum(i) + " is NULL");
2154  };
2155 };
2156 
2157 
2158 
2159 //
2160 void VcCalc2SessionIfc::putR_sitOcAmp(const double values[], short dim1, short dim2, short dim3)
2161 {
2162  int n=session_->calcInfo().stations().size();
2163  if (!(dim1==11 && dim2==n && dim3==1))
2164  {
2166  "::putR_sitOcAmp(): the dimensions (" + QString("").setNum(dim1) +
2167  "," + QString("").setNum(dim2) + "," + QString("").setNum(dim3) +
2168  ") are unexpected");
2169  return;
2170  };
2171  for (int i=0; i<n; i++)
2172  {
2174  if (si)
2175  {
2176  for (int j=0; j<dim1; j++)
2177  si->setOLoadAmplitude(j, 0, values[dim1*i + j]);
2178  }
2179  else
2181  "::putR_sitOcAmp(): the station # " + QString("").setNum(i) + " is NULL");
2182  };
2183 };
2184 
2185 
2186 
2187 //
2188 void VcCalc2SessionIfc::putR_sitHocPh(const double values[], short dim1, short dim2, short dim3)
2189 {
2190  int n=session_->calcInfo().stations().size();
2191  if (!(dim1==11 && dim2==2 && dim3==n))
2192  {
2194  "::putR_sitHocPh(): the dimensions (" + QString("").setNum(dim1) +
2195  "," + QString("").setNum(dim2) + "," + QString("").setNum(dim3) +
2196  ") are unexpected");
2197  return;
2198  };
2199  for (int i=0; i<n; i++)
2200  {
2202  if (si)
2203  {
2204  for (int j=0; j<dim1; j++)
2205  {
2206  si->setOLoadPhase(j, 1, values[2*dim1*i + j]);
2207  si->setOLoadPhase(j, 2, values[2*dim1*i + dim1 + j]);
2208  };
2209  }
2210  else
2212  "::putR_sitHocPh(): the station # " + QString("").setNum(i) + " is NULL");
2213  };
2214 };
2215 
2216 
2217 
2218 //
2219 void VcCalc2SessionIfc::putR_sitHocAm(const double values[], short dim1, short dim2, short dim3)
2220 {
2221  int n=session_->calcInfo().stations().size();
2222  if (!(dim1==11 && dim2==2 && dim3==n))
2223  {
2225  "::putR_sitHocAm(): the dimensions (" + QString("").setNum(dim1) +
2226  "," + QString("").setNum(dim2) + "," + QString("").setNum(dim3) +
2227  ") are unexpected");
2228  return;
2229  };
2230  for (int i=0; i<n; i++)
2231  {
2233  if (si)
2234  {
2235  for (int j=0; j<dim1; j++)
2236  {
2237  si->setOLoadAmplitude(j, 1, values[2*dim1*i + j]);
2238  si->setOLoadAmplitude(j, 2, values[2*dim1*i + dim1 + j]);
2239  };
2240  }
2241  else
2243  "::putR_sitHocAm(): the station # " + QString("").setNum(i) + " is NULL");
2244  };
2245 };
2246 
2247 
2248 
2249 //
2250 void VcCalc2SessionIfc::putR_star2000(const double values[], short dim1, short dim2, short dim3)
2251 {
2252  if (!(dim1==2 && dim2==numOfSources_ && dim3==1))
2253  {
2255  "::putR_star2000(): the dimensions (" + QString("").setNum(dim1) +
2256  "," + QString("").setNum(dim2) + "," + QString("").setNum(dim3) +
2257  ") are unexpected");
2258  return;
2259  };
2260  int idx=0;
2261  for (SourcesByName_it it=session_->sourcesByName().begin(); it!=session_->sourcesByName().end(); ++it)
2262  {
2263  SgVlbiSourceInfo *src=it.value();
2264  src->setRA(values[2*idx ]);
2265  src->setDN(values[2*idx + 1]);
2266  idx++;
2267  };
2268 };
2269 
2270 
2271 
2272 //
2273 void VcCalc2SessionIfc::putR_siteRecs(const double values[], short dim1, short dim2, short dim3)
2274 {
2275  if (!(dim1==3 && dim2==numOfStations_ && dim3==1))
2276  {
2278  "::putR_siteRecs(): the dimensions (" + QString("").setNum(dim1) +
2279  "," + QString("").setNum(dim2) + "," + QString("").setNum(dim3) +
2280  ") are unexpected");
2281  return;
2282  };
2283  int idx=0;
2284  for (StationsByName_it it=session_->stationsByName().begin(); it!=session_->stationsByName().end();
2285  ++it)
2286  {
2287  SgVlbiStationInfo *stn=it.value();
2288  stn->setR(Sg3dVector(values[3*idx], values[3*idx + 1], values[3*idx + 2]));
2289  idx++;
2290  };
2291 };
2292 
2293 
2294 
2295 //
2296 void VcCalc2SessionIfc::putR_axisOffs(const double values[], short dim1, short dim2, short dim3)
2297 {
2298  if (!(dim1==numOfStations_ && dim2==1 && dim3==1))
2299  {
2301  "::putR_axisOffs(): the dimensions (" + QString("").setNum(dim1) +
2302  "," + QString("").setNum(dim2) + "," + QString("").setNum(dim3) +
2303  ") are unexpected");
2304  return;
2305  };
2306  int idx=0;
2307  for (StationsByName_it it=session_->stationsByName().begin(); it!=session_->stationsByName().end();
2308  ++it)
2309  {
2310  SgVlbiStationInfo *stn=it.value();
2311  stn->setAxisOffset(values[idx]);
2312  idx++;
2313  };
2314 };
2315 
2316 
2317 //
2318 void VcCalc2SessionIfc::putR_axisTilt(const double values[], short dim1, short dim2, short dim3)
2319 {
2320  if (!(dim1==2 && dim2==numOfStations_ && dim3==1))
2321  {
2323  "::putR_axisTilt(): the dimensions (" + QString("").setNum(dim1) +
2324  "," + QString("").setNum(dim2) + "," + QString("").setNum(dim3) +
2325  ") are unexpected");
2326  return;
2327  };
2328  int idx=0;
2329  for (StationsByName_it it=session_->stationsByName().begin(); it!=session_->stationsByName().end();
2330  ++it)
2331  {
2332  SgVlbiStationInfo *stn=it.value();
2333  stn->setTilt(0, values[2*idx ]);
2334  stn->setTilt(1, values[2*idx + 1]);
2335  idx++;
2336  };
2337 };
2338 
2339 
2340 
2341 
2342 
2343 //
2344 // known put4s:
2345 //
2346 
2347 
2348 //
2349 void VcCalc2SessionIfc::put4_calc_ver(const double values[], short dim1, short dim2, short dim3)
2350 {
2351  if (!(dim1==1 && dim2==1 && dim3==1))
2352  {
2354  "::put4_calc_ver(): the dimensions (" + QString("").setNum(dim1) +
2355  "," + QString("").setNum(dim2) + "," + QString("").setNum(dim3) +
2356  ") are unexpected");
2357  return;
2358  };
2359  session_->calcInfo().setDversion(values[0]);
2360  session_->calcInfo().setProgramName("CALC");
2361  session_->calcInfo().setVersion(QString("").setNum(values[0]));
2362 };
2363 
2364 
2365 
2366 //
2367 void VcCalc2SessionIfc::put4_ut1Epoch(const double values[], short dim1, short dim2, short dim3)
2368 {
2369  if (!(dim1==2 && dim3==1))
2370  {
2372  "::put4_ut1Epoch(): the dimensions (" + QString("").setNum(dim1) +
2373  "," + QString("").setNum(dim2) + "," + QString("").setNum(dim3) +
2374  ") are unexpected");
2375  return;
2376  };
2377  int nn;
2378  if (!session_->calcInfo().ut1InterpData())
2379  {
2380  session_->calcInfo().ut1InterpData() = new SgMatrix(dim2, 2);
2382  "::put4_ut1Epoch(): the matrix has been alocated");
2383  }
2384  else if (dim2 != (nn=session_->calcInfo().ut1InterpData()->nRow()))
2385  {
2386  delete session_->calcInfo().ut1InterpData();
2387  session_->calcInfo().ut1InterpData() = new SgMatrix(dim2, 2);
2389  "::put4_ut1Epoch(): adjusted the dimension of the matrix: " + QString("").setNum(nn) +
2390  " => " + QString("").setNum(dim2));
2391  };
2392  for (int i=0; i<dim2; i++)
2393  for (int j=0; j<dim1; j++)
2394  session_->calcInfo().ut1InterpData()->setElement(i, j, values[dim1*i + j]);
2395 };
2396 
2397 
2398 
2399 //
2400 void VcCalc2SessionIfc::put4_wobEpoch(const double values[], short dim1, short dim2, short dim3)
2401 {
2402  if (!(dim1==2 && dim3==1))
2403  {
2405  "::put4_wobEpoch(): the dimensions (" + QString("").setNum(dim1) +
2406  "," + QString("").setNum(dim2) + "," + QString("").setNum(dim3) +
2407  ") are unexpected");
2408  return;
2409  };
2410  if (dim2 == 0)
2411  {
2413  "::put4_wobEpoch(): the dimensions #2 is zero, adjusted to 1");
2414  dim2 = 1;
2415  };
2416  int nn;
2417  if (!session_->calcInfo().wobInterpData())
2418  {
2419  session_->calcInfo().wobInterpData() = new SgMatrix(dim2, 2);
2421  "::put4_wobEpoch(): the matrix has been alocated");
2422  }
2423  else if (dim2 != (nn=session_->calcInfo().wobInterpData()->nRow()))
2424  {
2425  delete session_->calcInfo().wobInterpData();
2426  session_->calcInfo().wobInterpData() = new SgMatrix(dim2, 2);
2428  "::put4_wobEpoch(): adjusted the dimension of the matrix: " + QString("").setNum(nn) +
2429  " => " + QString("").setNum(dim2));
2430  };
2431  for (int i=0; i<dim2; i++)
2432  for (int j=0; j<dim1; j++)
2433  session_->calcInfo().wobInterpData()->setElement(i, j, values[dim1*i + j]);
2434 };
2435 
2436 
2437 
2438 
2439 //--
2440 //
2441 void VcCalc2SessionIfc::put4_fUt1_inf(const double values[], short dim1, short dim2, short dim3)
2442 {
2443  if (!(dim1==4 && dim2==1 && dim3==1))
2444  {
2446  "::put4_fUt1_inf(): the dimensions (" + QString("").setNum(dim1) +
2447  "," + QString("").setNum(dim2) + "," + QString("").setNum(dim3) +
2448  ") are unexpected");
2449  return;
2450  };
2451  double t0=values[0];
2452  double dt=values[1];
2453  unsigned int numOfPts=round(values[2]);
2454  if (t0 > 2390000.0)
2455  t0 -= 2400000.5;
2456  session_->allocUt1InterpolEpochs(t0, dt, numOfPts);
2457 };
2458 
2459 
2460 
2461 //
2462 void VcCalc2SessionIfc::put4_fWob_inf(const double values[], short dim1, short dim2, short dim3)
2463 {
2464  if (!(dim1==3 && dim2==1 && dim3==1))
2465  {
2467  "::put4_fWob_inf(): the dimensions (" + QString("").setNum(dim1) +
2468  "," + QString("").setNum(dim2) + "," + QString("").setNum(dim3) +
2469  ") are unexpected");
2470  return;
2471  };
2472  double t0=values[0];
2473  double dt=values[1];
2474  unsigned int numOfPts=round(values[2]);
2475  if (t0 > 2390000.0)
2476  t0 -= 2400000.5;
2477  session_->allocPxyInterpolEpochs(t0, dt, numOfPts);
2478 };
2479 
2480 
2481 
2482 //
2483 void VcCalc2SessionIfc::put4_fUt1_pts(const double values[], short dim1, short dim2, short dim3)
2484 {
2485  if (!(dim2==1 && dim3==1))
2486  {
2488  "::put4_fUt1_pts(): the dimensions (" + QString("").setNum(dim1) +
2489  "," + QString("").setNum(dim2) + "," + QString("").setNum(dim3) +
2490  ") are unexpected");
2491  return;
2492  };
2493  SgVector vals(dim1);
2494  for (int i=0; i<dim1; i++)
2495  vals.setElement(i, values[i]);
2497 };
2498 
2499 
2500 
2501 //
2502 void VcCalc2SessionIfc::put4_fWobXnYt(const double values[], short dim1, short dim2, short dim3)
2503 {
2504  if (!(dim1==2 && dim3==1))
2505  {
2507  "::put4_fWobXnYt(): the dimensions (" + QString("").setNum(dim1) +
2508  "," + QString("").setNum(dim2) + "," + QString("").setNum(dim3) +
2509  ") are unexpected");
2510  return;
2511  };
2512  SgMatrix vals(dim2, 2);
2513  for (int i=0; i<dim2; i++)
2514  {
2515  vals.setElement(i, 0, values[2*i ]);
2516  vals.setElement(i, 1, values[2*i + 1 ]);
2517  };
2519 };
2520 
2521 
2522 
2523 //
2524 void VcCalc2SessionIfc::put4_tai__utc(const double values[], short dim1, short dim2, short dim3)
2525 {
2526  if (!(dim1==3 && dim2==1 && dim3==1))
2527  {
2529  "::put4_tai__utc(): the dimensions (" + QString("").setNum(dim1) +
2530  "," + QString("").setNum(dim2) + "," + QString("").setNum(dim3) +
2531  ") are unexpected");
2532  return;
2533  };
2534  double ls=values[1];
2535  if (0.5<ls && ls<1000)
2536  {
2537  session_->setLeapSeconds(ls);
2539  "::put4_tai__utc(): " + QString().setNum(ls) + " leap seconds were assigned");
2540  };
2541 };
2542 
2543 
2544 
2545 
2546 //--
2547 
2548 
2549 
2550 //
2551 //
2552 void VcCalc2SessionIfc::put4_axo_part(const double values[], short dim1, short dim2, short dim3)
2553 {
2555  {
2557  "::put4_axo_part(): the obs.index (" + QString("").setNum(obsIdx_) +
2558  ") is out of range [0..." + QString("").setNum(numOfObservations_) + "]");
2559  return;
2560  };
2561  if (!(dim1==2 && dim2==2 && dim3==1))
2562  {
2564  "::put4_axo_part(): the dimensions (" + QString("").setNum(dim1) +
2565  "," + QString("").setNum(dim2) + "," + QString("").setNum(dim3) +
2566  ") are unexpected");
2567  return;
2568  };
2569  if (aux1_)
2570  {
2571  aux1_->setDdel_dAxsOfs (-values[0]);
2572  aux1_->setDrat_dAxsOfs (-values[2]);
2573  };
2574  if (aux2_)
2575  {
2576  aux2_->setDdel_dAxsOfs ( values[1]);
2577  aux2_->setDrat_dAxsOfs ( values[3]);
2578  };
2579 };
2580 
2581 
2582 
2583 //
2584 void VcCalc2SessionIfc::put4_az_theo(const double values[], short dim1, short dim2, short dim3)
2585 {
2587  {
2589  "::put4_az_theo(): the obs.index (" + QString("").setNum(obsIdx_) +
2590  ") is out of range [0..." + QString("").setNum(numOfObservations_) + "]");
2591  return;
2592  };
2593  if (!(dim1==2 && dim2==2 && dim3==1))
2594  {
2596  "::put4_az_theo(): the dimensions (" + QString("").setNum(dim1) +
2597  "," + QString("").setNum(dim2) + "," + QString("").setNum(dim3) +
2598  ") are unexpected");
2599  return;
2600  };
2601  if (aux1_)
2602  {
2603  aux1_->setAzimuthAngle (values[0]);
2604  aux1_->setAzimuthAngleRate (values[2]);
2605  };
2606  if (aux2_)
2607  {
2608  aux2_->setAzimuthAngle (values[1]);
2609  aux2_->setAzimuthAngleRate (values[3]);
2610  };
2611 };
2612 
2613 
2614 void VcCalc2SessionIfc::put4_el_theo(const double values[], short dim1, short dim2, short dim3)
2615 {
2617  {
2619  "::put4_el_theo(): the obs.index (" + QString("").setNum(obsIdx_) +
2620  ") is out of range [0..." + QString("").setNum(numOfObservations_) + "]");
2621  return;
2622  };
2623  if (!(dim1==2 && dim2==2 && dim3==1))
2624  {
2626  "::put4_el_theo(): the dimensions (" + QString("").setNum(dim1) +
2627  "," + QString("").setNum(dim2) + "," + QString("").setNum(dim3) +
2628  ") are unexpected");
2629  return;
2630  };
2631  if (aux1_)
2632  {
2633  aux1_->setElevationAngle (values[0]);
2634  aux1_->setElevationAngleRate (values[2]);
2635  };
2636  if (aux2_)
2637  {
2638  aux2_->setElevationAngle (values[1]);
2639  aux2_->setElevationAngleRate (values[3]);
2640  };
2641 };
2642 
2643 
2644 //
2645 void VcCalc2SessionIfc::put4_parAngle(const double values[], short dim1, short dim2, short dim3)
2646 {
2648  {
2650  "::put4_parAngle(): the obs.index (" + QString("").setNum(obsIdx_) +
2651  ") is out of range [0..." + QString("").setNum(numOfObservations_) + "]");
2652  return;
2653  };
2654  if (!(dim1==2 && dim2==1 && dim3==1))
2655  {
2657  "::put4_parAngle(): the dimensions (" + QString("").setNum(dim1) +
2658  "," + QString("").setNum(dim2) + "," + QString("").setNum(dim3) +
2659  ") are unexpected");
2660  return;
2661  };
2662  if (aux1_)
2663  aux1_->setParallacticAngle(values[0]*DEG2RAD);
2664  if (aux2_)
2665  aux2_->setParallacticAngle(values[1]*DEG2RAD);
2666 };
2667 
2668 
2669 
2670 //
2671 void VcCalc2SessionIfc::put4_axo_cont(const double values[], short dim1, short dim2, short dim3)
2672 {
2674  {
2676  "::put4_axo_cont(): the obs.index (" + QString("").setNum(obsIdx_) +
2677  ") is out of range [0..." + QString("").setNum(numOfObservations_) + "]");
2678  return;
2679  };
2680  if (!(dim1==2 && dim2==2 && dim3==1))
2681  {
2683  "::put4_axo_cont(): the dimensions (" + QString("").setNum(dim1) +
2684  "," + QString("").setNum(dim2) + "," + QString("").setNum(dim3) +
2685  ") are unexpected");
2686  return;
2687  };
2688  if (aux1_)
2689  {
2690  aux1_->setCalcAxisOffset4Delay(-values[0]); // ?? sign???
2691  aux1_->setCalcAxisOffset4Rate (-values[2]);
2692  };
2693  if (aux2_)
2694  {
2695  aux2_->setCalcAxisOffset4Delay( values[1]);
2696  aux2_->setCalcAxisOffset4Rate ( values[3]);
2697  };
2698 };
2699 
2700 
2701 
2702 //
2703 void VcCalc2SessionIfc::put4_nDryCont(const double values[], short dim1, short dim2, short dim3)
2704 {
2706  {
2708  "::put4_nDryCont(): the obs.index (" + QString("").setNum(obsIdx_) +
2709  ") is out of range [0..." + QString("").setNum(numOfObservations_) + "]");
2710  return;
2711  };
2712  if (!(dim1==2 && dim2==2 && dim3==1))
2713  {
2715  "::put4_nDryCont(): the dimensions (" + QString("").setNum(dim1) +
2716  "," + QString("").setNum(dim2) + "," + QString("").setNum(dim3) +
2717  ") are unexpected");
2718  return;
2719  };
2720  if (aux1_)
2721  {
2722  aux1_->setCalcNdryCont4Delay(-values[0]);
2723  aux1_->setCalcNdryCont4Rate (-values[2]);
2724  };
2725  if (aux2_)
2726  {
2727  aux2_->setCalcNdryCont4Delay( values[1]);
2728  aux2_->setCalcNdryCont4Rate ( values[3]);
2729  };
2730 };
2731 
2732 
2733 
2734 //
2735 void VcCalc2SessionIfc::put4_nWetCont(const double values[], short dim1, short dim2, short dim3)
2736 {
2738  {
2740  "::put4_nWetCont(): the obs.index (" + QString("").setNum(obsIdx_) +
2741  ") is out of range [0..." + QString("").setNum(numOfObservations_) + "]");
2742  return;
2743  };
2744  if (!(dim1==2 && dim2==2 && dim3==1))
2745  {
2747  "::put4_nWetCont(): the dimensions (" + QString("").setNum(dim1) +
2748  "," + QString("").setNum(dim2) + "," + QString("").setNum(dim3) +
2749  ") are unexpected");
2750  return;
2751  };
2752  if (aux1_)
2753  {
2754  aux1_->setCalcNwetCont4Delay(-values[0]);
2755  aux1_->setCalcNwetCont4Rate (-values[2]);
2756  };
2757  if (aux2_)
2758  {
2759  aux2_->setCalcNwetCont4Delay( values[1]);
2760  aux2_->setCalcNwetCont4Rate ( values[3]);
2761  };
2762 };
2763 
2764 
2765 
2766 //
2767 void VcCalc2SessionIfc::put4_oce_horz(const double values[], short dim1, short dim2, short dim3)
2768 {
2770  {
2772  "::put4_oce_horz(): the obs.index (" + QString("").setNum(obsIdx_) +
2773  ") is out of range [0..." + QString("").setNum(numOfObservations_) + "]");
2774  return;
2775  };
2776  if (!(dim1==2 && dim2==2 && dim3==1))
2777  {
2779  "::put4_oce_horz(): the dimensions (" + QString("").setNum(dim1) +
2780  "," + QString("").setNum(dim2) + "," + QString("").setNum(dim3) +
2781  ") are unexpected");
2782  return;
2783  };
2784  if (aux1_)
2785  {
2786  aux1_->setCalcOLoadHorz4Delay(-values[0]);
2787  aux1_->setCalcOLoadHorz4Rate (-values[2]);
2788  };
2789  if (aux2_)
2790  {
2791  aux2_->setCalcOLoadHorz4Delay( values[1]);
2792  aux2_->setCalcOLoadHorz4Rate ( values[3]);
2793  };
2794 };
2795 
2796 
2797 
2798 //
2799 void VcCalc2SessionIfc::put4_oce_vert(const double values[], short dim1, short dim2, short dim3)
2800 {
2802  {
2804  "::put4_oce_vert(): the obs.index (" + QString("").setNum(obsIdx_) +
2805  ") is out of range [0..." + QString("").setNum(numOfObservations_) + "]");
2806  return;
2807  };
2808  if (!(dim1==2 && dim2==2 && dim3==1))
2809  {
2811  "::put4_oce_vert(): the dimensions (" + QString("").setNum(dim1) +
2812  "," + QString("").setNum(dim2) + "," + QString("").setNum(dim3) +
2813  ") are unexpected");
2814  return;
2815  };
2816  if (aux1_)
2817  {
2818  aux1_->setCalcOLoadVert4Delay(-values[0]);
2819  aux1_->setCalcOLoadVert4Rate (-values[2]);
2820  };
2821  if (aux2_)
2822  {
2823  aux2_->setCalcOLoadVert4Delay( values[1]);
2824  aux2_->setCalcOLoadVert4Rate ( values[3]);
2825  };
2826 };
2827 
2828 
2829 
2830 //
2831 void VcCalc2SessionIfc::put4_oce_deld(const double values[], short dim1, short dim2, short dim3)
2832 {
2834  {
2836  "::put4_oce_deld(): the obs.index (" + QString("").setNum(obsIdx_) +
2837  ") is out of range [0..." + QString("").setNum(numOfObservations_) + "]");
2838  return;
2839  };
2840  if (!(dim1==3 && dim2==2 && dim3==2))
2841  {
2843  "::put4_oce_deld(): the dimensions (" + QString("").setNum(dim1) +
2844  "," + QString("").setNum(dim2) + "," + QString("").setNum(dim3) +
2845  ") are unexpected");
2846  return;
2847  };
2848  if (aux1_)
2849  {
2850  aux1_->setOcnLdR( Sg3dVector(values[ 0], values[ 1], values[ 2]) );
2851  aux1_->setOcnLdV( Sg3dVector(values[ 3], values[ 4], values[ 5]) );
2852  };
2853  if (aux2_)
2854  {
2855  aux2_->setOcnLdR( Sg3dVector(values[ 6], values[ 7], values[ 8]) );
2856  aux2_->setOcnLdV( Sg3dVector(values[ 9], values[10], values[11]) );
2857  };
2858 };
2859 
2860 
2861 
2862 //
2863 void VcCalc2SessionIfc::put4_nDryPart(const double values[], short dim1, short dim2, short dim3)
2864 {
2866  {
2868  "::put4_nDryPart(): the obs.index (" + QString("").setNum(obsIdx_) +
2869  ") is out of range [0..." + QString("").setNum(numOfObservations_) + "]");
2870  return;
2871  };
2872  if (!(dim1==2 && dim2==2 && dim3==1))
2873  {
2875  "::put4_nDryPart(): the dimensions (" + QString("").setNum(dim1) +
2876  "," + QString("").setNum(dim2) + "," + QString("").setNum(dim3) +
2877  ") are unexpected");
2878  return;
2879  };
2880  if (aux1_)
2881  {
2882  aux1_->setDdel_dTzdDry(-values[0]);
2883  aux1_->setDrat_dTzdDry(-values[2]);
2884  };
2885  if (aux2_)
2886  {
2887  aux2_->setDdel_dTzdDry( values[1]);
2888  aux2_->setDrat_dTzdDry( values[3]);
2889  };
2890 };
2891 
2892 
2893 
2894 //
2895 void VcCalc2SessionIfc::put4_nWetPart(const double values[], short dim1, short dim2, short dim3)
2896 {
2898  {
2900  "::put4_nWetPart(): the obs.index (" + QString("").setNum(obsIdx_) +
2901  ") is out of range [0..." + QString("").setNum(numOfObservations_) + "]");
2902  return;
2903  };
2904  if (!(dim1==2 && dim2==2 && dim3==1))
2905  {
2907  "::put4_nWetPart(): the dimensions (" + QString("").setNum(dim1) +
2908  "," + QString("").setNum(dim2) + "," + QString("").setNum(dim3) +
2909  ") are unexpected");
2910  return;
2911  };
2912  if (aux1_)
2913  {
2914  aux1_->setDdel_dTzdWet(-values[0]);
2915  aux1_->setDrat_dTzdWet(-values[2]);
2916  };
2917  if (aux2_)
2918  {
2919  aux2_->setDdel_dTzdWet( values[1]);
2920  aux2_->setDrat_dTzdWet( values[3]);
2921  };
2922 };
2923 
2924 
2925 
2926 //
2927 void VcCalc2SessionIfc::put4_nGradPar(const double values[], short dim1, short dim2, short dim3)
2928 {
2930  {
2932  "::put4_nGradPar(): the obs.index (" + QString("").setNum(obsIdx_) +
2933  ") is out of range [0..." + QString("").setNum(numOfObservations_) + "]");
2934  return;
2935  };
2936  if (!(dim1==2 && dim2==2 && dim3==2))
2937  {
2939  "::put4_nGradPar(): the dimensions (" + QString("").setNum(dim1) +
2940  "," + QString("").setNum(dim2) + "," + QString("").setNum(dim3) +
2941  ") are unexpected");
2942  return;
2943  };
2944  if (aux1_)
2945  {
2946  aux1_->setDdel_dTzdGrdN( values[0]);
2947  aux1_->setDdel_dTzdGrdE( values[2]);
2948  aux1_->setDrat_dTzdGrdN( values[4]);
2949  aux1_->setDrat_dTzdGrdE( values[6]);
2950  };
2951  if (aux2_)
2952  {
2953  aux2_->setDdel_dTzdGrdN( values[1]);
2954  aux2_->setDdel_dTzdGrdE( values[3]);
2955  aux2_->setDrat_dTzdGrdN( values[5]);
2956  aux2_->setDrat_dTzdGrdE( values[7]);
2957  };
2958 };
2959 
2960 
2961 
2962 //
2963 void VcCalc2SessionIfc::put4_bendPart(const double values[], short dim1, short dim2, short dim3)
2964 {
2966  {
2968  "::put4_bendPart(): the obs.index (" + QString("").setNum(obsIdx_) +
2969  ") is out of range [0..." + QString("").setNum(numOfObservations_) + "]");
2970  return;
2971  };
2972  if (!(dim1==2 && dim2==1 && dim3==1))
2973  {
2975  "::put4_bendPart(): the dimensions (" + QString("").setNum(dim1) +
2976  "," + QString("").setNum(dim2) + "," + QString("").setNum(dim3) +
2977  ") are unexpected");
2978  return;
2979  };
2980  if (obs_)
2981  {
2982  obs_->setDdel_dBend(values[0]);
2983  obs_->setDrat_dBend(values[1]);
2984  };
2985 };
2986 
2987 
2988 
2989 
2990 void VcCalc2SessionIfc::put4_ut1_part(const double values[], short dim1, short dim2, short dim3)
2991 {
2993  {
2995  "::put4_ut1_part(): the obs.index (" + QString("").setNum(obsIdx_) +
2996  ") is out of range [0..." + QString("").setNum(numOfObservations_) + "]");
2997  return;
2998  };
2999  if (!(dim1==2 && dim2==2 && dim3==1))
3000  {
3002  "::put4_ut1_part(): the dimensions (" + QString("").setNum(dim1) +
3003  "," + QString("").setNum(dim2) + "," + QString("").setNum(dim3) +
3004  ") are unexpected");
3005  return;
3006  };
3007  if (obs_)
3008  {
3009  // revert the sign: d*/d(TAI-UT1)
3010 // obs_->setDdel_dUT1 (-values[0]);
3011 // obs_->setDrat_dUT1 (-values[1]);
3012  obs_->setDdel_dUT1 (-values[0]*86400.0);
3013  obs_->setDrat_dUT1 (-values[1]*86400.0);
3014  obs_->setD2del_dUT12(-values[2]);
3015  obs_->setD2rat_dUT12(-values[3]);
3016  };
3017 };
3018 
3019 
3020 
3021 
3022 void VcCalc2SessionIfc::put4_wob_part(const double values[], short dim1, short dim2, short dim3)
3023 {
3025  {
3027  "::put4_wob_part(): the obs.index (" + QString("").setNum(obsIdx_) +
3028  ") is out of range [0..." + QString("").setNum(numOfObservations_) + "]");
3029  return;
3030  };
3031  if (!(dim1==2 && dim2==2 && dim3==1))
3032  {
3034  "::put4_wob_part(): the dimensions (" + QString("").setNum(dim1) +
3035  "," + QString("").setNum(dim2) + "," + QString("").setNum(dim3) +
3036  ") are unexpected");
3037  return;
3038  };
3039  if (obs_)
3040  {
3041  obs_->setDdel_dPx(values[0]);
3042  obs_->setDdel_dPy(values[1]);
3043  obs_->setDrat_dPx(values[2]);
3044  obs_->setDrat_dPy(values[3]);
3045  };
3046 };
3047 
3048 
3049 
3050 //
3051 void VcCalc2SessionIfc::put4_nut06XyP(const double values[], short dim1, short dim2, short dim3)
3052 {
3054  {
3056  "::put4_nut06XyP(): the obs.index (" + QString("").setNum(obsIdx_) +
3057  ") is out of range [0..." + QString("").setNum(numOfObservations_) + "]");
3058  return;
3059  };
3060  if (!(dim1==2 && dim2==2 && dim3==1))
3061  {
3063  "::put4_nut06XyP(): the dimensions (" + QString("").setNum(dim1) +
3064  "," + QString("").setNum(dim2) + "," + QString("").setNum(dim3) +
3065  ") are unexpected");
3066  return;
3067  };
3068  if (obs_)
3069  {
3070  obs_->setDdel_dCipX(values[0]);
3071  obs_->setDdel_dCipY(values[1]);
3072  obs_->setDrat_dCipX(values[2]);
3073  obs_->setDrat_dCipY(values[3]);
3074  };
3075 };
3076 
3077 
3078 
3079 //
3080 void VcCalc2SessionIfc::put4_str_part(const double values[], short dim1, short dim2, short dim3)
3081 {
3083  {
3085  "::put4_str_part(): the obs.index (" + QString("").setNum(obsIdx_) +
3086  ") is out of range [0..." + QString("").setNum(numOfObservations_) + "]");
3087  return;
3088  };
3089  if (!(dim1==2 && dim2==2 && dim3==1))
3090  {
3092  "::put4_str_part(): the dimensions (" + QString("").setNum(dim1) +
3093  "," + QString("").setNum(dim2) + "," + QString("").setNum(dim3) +
3094  ") are unexpected");
3095  return;
3096  };
3097  if (obs_)
3098  {
3099  obs_->setDdel_dRA(values[0]);
3100  obs_->setDdel_dDN(values[1]);
3101  obs_->setDrat_dRA(values[2]);
3102  obs_->setDrat_dDN(values[3]);
3103  };
3104 };
3105 
3106 
3107 
3108 //
3109 void VcCalc2SessionIfc::put4_sit_part(const double values[], short dim1, short dim2, short dim3)
3110 {
3112  {
3114  "::put4_sit_part(): the obs.index (" + QString("").setNum(obsIdx_) +
3115  ") is out of range [0..." + QString("").setNum(numOfObservations_) + "]");
3116  return;
3117  };
3118  if (!(dim1==3 && dim2==2 && dim3==2))
3119  {
3121  "::put4_sit_part(): the dimensions (" + QString("").setNum(dim1) +
3122  "," + QString("").setNum(dim2) + "," + QString("").setNum(dim3) +
3123  ") are unexpected");
3124  return;
3125  };
3126  if (obs_)
3127  {
3128  obs_->setDdel_dR_1(Sg3dVector(values[ 0], values[ 1], values[ 2]));
3129  obs_->setDdel_dR_2(Sg3dVector(values[ 3], values[ 4], values[ 5]));
3130  obs_->setDrat_dR_1(Sg3dVector(values[ 6], values[ 7], values[ 8]));
3131  obs_->setDrat_dR_2(Sg3dVector(values[ 9], values[10], values[11]));
3132  };
3133 };
3134 
3135 
3136 
3137 //
3138 void VcCalc2SessionIfc::put4_consPart(const double values[], short dim1, short dim2, short dim3)
3139 {
3141  {
3143  "::put4_consPart(): the obs.index (" + QString("").setNum(obsIdx_) +
3144  ") is out of range [0..." + QString("").setNum(numOfObservations_) + "]");
3145  return;
3146  };
3147  if (!(dim1==2 && dim2==1 && dim3==1))
3148  {
3150  "::put4_consPart(): the dimensions (" + QString("").setNum(dim1) +
3151  "," + QString("").setNum(dim2) + "," + QString("").setNum(dim3) +
3152  ") are unexpected");
3153  return;
3154  };
3155  if (obs_)
3156  {
3157  obs_->setDdel_dGamma(values[0]);
3158  obs_->setDrat_dGamma(values[1]);
3159  };
3160 };
3161 
3162 
3163 
3164 //
3165 void VcCalc2SessionIfc::put4_plx_part(const double values[], short dim1, short dim2, short dim3)
3166 {
3168  {
3170  "::put4_plx_part(): the obs.index (" + QString("").setNum(obsIdx_) +
3171  ") is out of range [0..." + QString("").setNum(numOfObservations_) + "]");
3172  return;
3173  };
3174  if (!(dim1==2 && dim2==1 && dim3==1))
3175  {
3177  "::put4_plx_part(): the dimensions (" + QString("").setNum(dim1) +
3178  "," + QString("").setNum(dim2) + "," + QString("").setNum(dim3) +
3179  ") are unexpected");
3180  return;
3181  };
3182  if (obs_)
3183  {
3184  obs_->setDdel_dParallax(values[0]);
3185  obs_->setDrat_dParallax(values[1]);
3186  };
3187 };
3188 
3189 
3190 
3191 //
3192 void VcCalc2SessionIfc::put4_pTdXyPar(const double values[], short dim1, short dim2, short dim3)
3193 {
3195  {
3197  "::put4_pTdXyPar(): the obs.index (" + QString("").setNum(obsIdx_) +
3198  ") is out of range [0..." + QString("").setNum(numOfObservations_) + "]");
3199  return;
3200  };
3201  if (!(dim1==2 && dim2==2 && dim3==1))
3202  {
3204  "::put4_pTdXyPar(): the dimensions (" + QString("").setNum(dim1) +
3205  "," + QString("").setNum(dim2) + "," + QString("").setNum(dim3) +
3206  ") are unexpected");
3207  return;
3208  };
3209  if (obs_)
3210  {
3211  obs_->setDdel_dPolTideX(values[0]);
3212  obs_->setDdel_dPolTideY(values[1]);
3213  obs_->setDrat_dPolTideX(values[2]);
3214  obs_->setDrat_dPolTideY(values[3]);
3215  };
3216 };
3217 
3218 
3219 
3220 //
3221 void VcCalc2SessionIfc::put4_consnDel(const double values[], short dim1, short dim2, short dim3)
3222 {
3224  {
3226  "::put4_consnDel(): the obs.index (" + QString("").setNum(obsIdx_) +
3227  ") is out of range [0..." + QString("").setNum(numOfObservations_) + "]");
3228  return;
3229  };
3230  if (!(dim1==2 && dim2==1 && dim3==1))
3231  {
3233  "::put4_consnDel(): the dimensions (" + QString("").setNum(dim1) +
3234  "," + QString("").setNum(dim2) + "," + QString("").setNum(dim3) +
3235  ") are unexpected");
3236  return;
3237  };
3238  if (obs_)
3239  obs_->setCalcConsensusDelay((values[0] + values[1])*1.0e-6);
3240 };
3241 
3242 
3243 
3244 //
3245 void VcCalc2SessionIfc::put4_consnRat(const double values[], short dim1, short dim2, short dim3)
3246 {
3248  {
3250  "::put4_consnRat(): the obs.index (" + QString("").setNum(obsIdx_) +
3251  ") is out of range [0..." + QString("").setNum(numOfObservations_) + "]");
3252  return;
3253  };
3254  if (!(dim1==1 && dim2==1 && dim3==1))
3255  {
3257  "::put4_consnRat(): the dimensions (" + QString("").setNum(dim1) +
3258  "," + QString("").setNum(dim2) + "," + QString("").setNum(dim3) +
3259  ") are unexpected");
3260  return;
3261  };
3262  if (obs_)
3263  obs_->setCalcConsensusRate(values[0]);
3264 };
3265 
3266 
3267 
3268 //
3269 void VcCalc2SessionIfc::put4_con_cont(const double values[], short dim1, short dim2, short dim3)
3270 {
3272  {
3274  "::put4_con_cont(): the obs.index (" + QString("").setNum(obsIdx_) +
3275  ") is out of range [0..." + QString("").setNum(numOfObservations_) + "]");
3276  return;
3277  };
3278  if (!(dim1==2 && dim2==1 && dim3==1))
3279  {
3281  "::put4_con_cont(): the dimensions (" + QString("").setNum(dim1) +
3282  "," + QString("").setNum(dim2) + "," + QString("").setNum(dim3) +
3283  ") are unexpected");
3284  return;
3285  };
3286  if (obs_)
3287  {
3288  obs_->setCalcConsBendingDelay(values[0]);
3289  obs_->setCalcConsBendingRate (values[1]);
3290  };
3291 };
3292 
3293 
3294 
3295 //
3296 void VcCalc2SessionIfc::put4_sun_cont(const double values[], short dim1, short dim2, short dim3)
3297 {
3299  {
3301  "::put4_sun_cont(): the obs.index (" + QString("").setNum(obsIdx_) +
3302  ") is out of range [0..." + QString("").setNum(numOfObservations_) + "]");
3303  return;
3304  };
3305  if (!(dim1==2 && dim2==1 && dim3==1))
3306  {
3308  "::put4_sun_cont(): the dimensions (" + QString("").setNum(dim1) +
3309  "," + QString("").setNum(dim2) + "," + QString("").setNum(dim3) +
3310  ") are unexpected");
3311  return;
3312  };
3313  if (obs_)
3314  {
3315  obs_->setCalcConsBendingSunDelay(values[0]);
3316  obs_->setCalcConsBendingSunRate (values[1]);
3317  };
3318 };
3319 
3320 
3321 
3322 //
3323 void VcCalc2SessionIfc::put4_sun2cont(const double values[], short dim1, short dim2, short dim3)
3324 {
3326  {
3328  "::put4_sun2cont(): the obs.index (" + QString("").setNum(obsIdx_) +
3329  ") is out of range [0..." + QString("").setNum(numOfObservations_) + "]");
3330  return;
3331  };
3332  if (!(dim1==2 && dim2==1 && dim3==1))
3333  {
3335  "::put4_sun2cont(): the dimensions (" + QString("").setNum(dim1) +
3336  "," + QString("").setNum(dim2) + "," + QString("").setNum(dim3) +
3337  ") are unexpected");
3338  return;
3339  };
3340  if (obs_)
3341  {
3344  };
3345 };
3346 
3347 
3348 
3349 //
3350 void VcCalc2SessionIfc::put4_etd_cont(const double values[], short dim1, short dim2, short dim3)
3351 {
3353  {
3355  "::put4_etd_cont(): the obs.index (" + QString("").setNum(obsIdx_) +
3356  ") is out of range [0..." + QString("").setNum(numOfObservations_) + "]");
3357  return;
3358  };
3359  if (!(dim1==2 && dim2==1 && dim3==1))
3360  {
3362  "::put4_etd_cont(): the dimensions (" + QString("").setNum(dim1) +
3363  "," + QString("").setNum(dim2) + "," + QString("").setNum(dim3) +
3364  ") are unexpected");
3365  return;
3366  };
3367  if (obs_)
3368  {
3369  obs_->setCalcEarthTideDelay(values[0]);
3370  obs_->setCalcEarthTideRate (values[1]);
3371  };
3372 };
3373 
3374 
3375 
3376 void VcCalc2SessionIfc::put4_feed_cor(const double values[], short dim1, short dim2, short dim3)
3377 {
3379  {
3381  "::put4_feed_cor(): the obs.index (" + QString("").setNum(obsIdx_) +
3382  ") is out of range [0..." + QString("").setNum(numOfObservations_) + "]");
3383  return;
3384  };
3385  if (!(dim1==2 && dim2==1 && dim3==1))
3386  {
3388  "::put4_feed_cor(): the dimensions (" + QString("").setNum(dim1) +
3389  "," + QString("").setNum(dim2) + "," + QString("").setNum(dim3) +
3390  ") are unexpected");
3391  return;
3392  };
3393  if (obs_)
3394  {
3395  obs_->setCalcFeedCorrDelay(values[0]);
3396  obs_->setCalcFeedCorrRate (values[1]);
3397  if (o_)
3398  {
3399  o_->setCalcFeedCorrDelay(values[0]);
3400  o_->setCalcFeedCorrRate (values[1]);
3401  };
3402  };
3403 };
3404 
3405 
3406 
3407 
3408 void VcCalc2SessionIfc::put4_oce_cont(const double values[], short dim1, short dim2, short dim3)
3409 {
3411  {
3413  "::put4_oce_cont: the obs.index (" + QString("").setNum(obsIdx_) +
3414  ") is out of range [0..." + QString("").setNum(numOfObservations_) + "]");
3415  return;
3416  };
3417  if (!(dim1==2 && dim2==1 && dim3==1))
3418  {
3420  "::put4_oce_cont: the dimensions (" + QString("").setNum(dim1) +
3421  "," + QString("").setNum(dim2) + "," + QString("").setNum(dim3) +
3422  ") are unexpected");
3423  return;
3424  };
3425  if (obs_)
3426  {
3427  obs_->setCalcOceanTideDelay(values[0]);
3428  obs_->setCalcOceanTideRate (values[1]);
3429  };
3430 };
3431 
3432 
3433 
3434 
3435 void VcCalc2SessionIfc::put4_oce_old (const double values[], short dim1, short dim2, short dim3)
3436 {
3438  {
3440  "::put4_oce_old(): the obs.index (" + QString("").setNum(obsIdx_) +
3441  ") is out of range [0..." + QString("").setNum(numOfObservations_) + "]");
3442  return;
3443  };
3444  if (!(dim1==2 && dim2==1 && dim3==1))
3445  {
3447  "::put4_oce_old(): the dimensions (" + QString("").setNum(dim1) +
3448  "," + QString("").setNum(dim2) + "," + QString("").setNum(dim3) +
3449  ") are unexpected");
3450  return;
3451  };
3452  if (obs_)
3453  {
3454  obs_->setCalcOceanTideOldDelay(values[0]);
3455  obs_->setCalcOceanTideOldRate (values[1]);
3456  };
3457 };
3458 
3459 
3460 
3461 
3462 void VcCalc2SessionIfc::put4_optlCont(const double values[], short dim1, short dim2, short dim3)
3463 {
3465  {
3467  "::put4_optlCont(): the obs.index (" + QString("").setNum(obsIdx_) +
3468  ") is out of range [0..." + QString("").setNum(numOfObservations_) + "]");
3469  return;
3470  };
3471  if (!(dim1==2 && dim2==1 && dim3==1))
3472  {
3474  "::put4_optlCont(): the dimensions (" + QString("").setNum(dim1) +
3475  "," + QString("").setNum(dim2) + "," + QString("").setNum(dim3) +
3476  ") are unexpected");
3477  return;
3478  };
3479  if (obs_)
3480  {
3481  obs_->setCalcOceanPoleTideLdDelay(values[0]);
3482  obs_->setCalcOceanPoleTideLdRate (values[1]);
3483  };
3484 };
3485 
3486 
3487 
3488 
3489 void VcCalc2SessionIfc::put4_ptd_cont(const double values[], short dim1, short dim2, short dim3)
3490 {
3492  {
3494  "::put4_ptd_cont(): the obs.index (" + QString("").setNum(obsIdx_) +
3495  ") is out of range [0..." + QString("").setNum(numOfObservations_) + "]");
3496  return;
3497  };
3498  if (!(dim1==2 && dim2==1 && dim3==1))
3499  {
3501  "::put4_ptd_cont(): the dimensions (" + QString("").setNum(dim1) +
3502  "," + QString("").setNum(dim2) + "," + QString("").setNum(dim3) +
3503  ") are unexpected");
3504  return;
3505  };
3506  if (obs_)
3507  {
3508  obs_->setCalcPoleTideDelay(values[0]);
3509  obs_->setCalcPoleTideRate (values[1]);
3510  };
3511 };
3512 
3513 
3514 
3515 
3516 
3517 void VcCalc2SessionIfc::put4_ptOldCon(const double values[], short dim1, short dim2, short dim3)
3518 {
3520  {
3522  "::put4_ptOldCon(): the obs.index (" + QString("").setNum(obsIdx_) +
3523  ") is out of range [0..." + QString("").setNum(numOfObservations_) + "]");
3524  return;
3525  };
3526  if (!(dim1==2 && dim2==1 && dim3==1))
3527  {
3529  "::put4_ptOldCon(): the dimensions (" + QString("").setNum(dim1) +
3530  "," + QString("").setNum(dim2) + "," + QString("").setNum(dim3) +
3531  ") are unexpected");
3532  return;
3533  };
3534  if (obs_)
3535  {
3536  obs_->setCalcPoleTideOldDelay(values[0]);
3537  obs_->setCalcPoleTideOldRate (values[1]);
3538  };
3539 };
3540 
3541 
3542 
3543 
3544 
3545 void VcCalc2SessionIfc::put4_tiltRmvr(const double values[], short dim1, short dim2, short dim3)
3546 {
3548  {
3550  "::put4_tiltRmvr(): the obs.index (" + QString("").setNum(obsIdx_) +
3551  ") is out of range [0..." + QString("").setNum(numOfObservations_) + "]");
3552  return;
3553  };
3554  if (!(dim1==2 && dim2==1 && dim3==1))
3555  {
3557  "::put4_tiltRmvr(): the dimensions (" + QString("").setNum(dim1) +
3558  "," + QString("").setNum(dim2) + "," + QString("").setNum(dim3) +
3559  ") are unexpected");
3560  return;
3561  };
3562  if (obs_)
3563  {
3564  obs_->setCalcTiltRemvrDelay(values[0]);
3565  obs_->setCalcTiltRemvrRate (values[1]);
3566  };
3567 };
3568 
3569 
3570 
3571 //
3572 void VcCalc2SessionIfc::put4_ut1Ortho(const double values[], short dim1, short dim2, short dim3)
3573 {
3575  {
3577  "::put4_ut1Ortho(): the obs.index (" + QString("").setNum(obsIdx_) +
3578  ") is out of range [0..." + QString("").setNum(numOfObservations_) + "]");
3579  return;
3580  };
3581  if (!(dim1==2 && dim2==1 && dim3==1))
3582  {
3584  "::put4_ut1Ortho(): the dimensions (" + QString("").setNum(dim1) +
3585  "," + QString("").setNum(dim2) + "," + QString("").setNum(dim3) +
3586  ") are unexpected");
3587  return;
3588  };
3589  if (obs_)
3590  {
3591  obs_->setCalcHiFyUt1Delay(values[0]);
3592  obs_->setCalcHiFyUt1Rate (values[1]);
3593  };
3594 };
3595 
3596 
3597 
3598 //
3599 void VcCalc2SessionIfc::put4_uvf_asec(const double values[], short dim1, short dim2, short dim3)
3600 {
3602  {
3604  "::put4_uvf_asec(): the obs.index (" + QString("").setNum(obsIdx_) +
3605  ") is out of range [0..." + QString("").setNum(numOfObservations_) + "]");
3606  return;
3607  };
3608  if (!(dim1==2 && dim2==1 && dim3==1))
3609  {
3611  "::put4_uvf_asec(): the dimensions (" + QString("").setNum(dim1) +
3612  "," + QString("").setNum(dim2) + "," + QString("").setNum(dim3) +
3613  ") are unexpected");
3614  return;
3615  };
3616  if (obs_ && o_)
3617  {
3618  o_->setUvFrPerAsec(0, values[0]);
3619  o_->setUvFrPerAsec(1, values[1]);
3620  };
3621 };
3622 
3623 
3624 
3625 
3626 //
3627 void VcCalc2SessionIfc::put4_wobOrtho(const double values[], short dim1, short dim2, short dim3)
3628 {
3630  {
3632  "::put4_wobOrtho(): the obs.index (" + QString("").setNum(obsIdx_) +
3633  ") is out of range [0..." + QString("").setNum(numOfObservations_) + "]");
3634  return;
3635  };
3636  if (!(dim1==2 && dim2==1 && dim3==1))
3637  {
3639  "::put4_wobOrtho(): the dimensions (" + QString("").setNum(dim1) +
3640  "," + QString("").setNum(dim2) + "," + QString("").setNum(dim3) +
3641  ") are unexpected");
3642  return;
3643  };
3644  if (obs_)
3645  {
3646  obs_->setCalcHiFyPxyDelay(values[0]);
3647  obs_->setCalcHiFyPxyRate (values[1]);
3648  };
3649 };
3650 
3651 
3652 
3653 //
3654 void VcCalc2SessionIfc::put4_ut1Libra(const double values[], short dim1, short dim2, short dim3)
3655 {
3657  {
3659  "::put4_ut1Libra(): the obs.index (" + QString("").setNum(obsIdx_) +
3660  ") is out of range [0..." + QString("").setNum(numOfObservations_) + "]");
3661  return;
3662  };
3663  if (!(dim1==2 && dim2==1 && dim3==1))
3664  {
3666  "::put4_ut1Libra(): the dimensions (" + QString("").setNum(dim1) +
3667  "," + QString("").setNum(dim2) + "," + QString("").setNum(dim3) +
3668  ") are unexpected");
3669  return;
3670  };
3671  if (obs_)
3672  {
3673  obs_->setCalcHiFyUt1LibrationDelay(values[0]);
3674  obs_->setCalcHiFyUt1LibrationRate (values[1]);
3675  };
3676 };
3677 
3678 
3679 
3680 //
3681 void VcCalc2SessionIfc::put4_wobLibra(const double values[], short dim1, short dim2, short dim3)
3682 {
3684  {
3686  "::put4_wobLibra(): the obs.index (" + QString("").setNum(obsIdx_) +
3687  ") is out of range [0..." + QString("").setNum(numOfObservations_) + "]");
3688  return;
3689  };
3690  if (!(dim1==2 && dim2==1 && dim3==1))
3691  {
3693  "::put4_wobLibra(): the dimensions (" + QString("").setNum(dim1) +
3694  "," + QString("").setNum(dim2) + "," + QString("").setNum(dim3) +
3695  ") are unexpected");
3696  return;
3697  };
3698  if (obs_)
3699  {
3700  obs_->setCalcHiFyPxyLibrationDelay(values[0]);
3701  obs_->setCalcHiFyPxyLibrationRate (values[1]);
3702  };
3703 };
3704 
3705 
3706 
3707 //
3708 void VcCalc2SessionIfc::put4_wobXcont(const double values[], short dim1, short dim2, short dim3)
3709 {
3711  {
3713  "::put4_wobXcont(): the obs.index (" + QString("").setNum(obsIdx_) +
3714  ") is out of range [0..." + QString("").setNum(numOfObservations_) + "]");
3715  return;
3716  };
3717  if (!(dim1==2 && dim2==1 && dim3==1))
3718  {
3720  "::put4_wobXcont(): the dimensions (" + QString("").setNum(dim1) +
3721  "," + QString("").setNum(dim2) + "," + QString("").setNum(dim3) +
3722  ") are unexpected");
3723  return;
3724  };
3725  if (obs_)
3726  {
3727  obs_->setCalcPxDelay(values[0]);
3728  obs_->setCalcPxRate (values[1]);
3729  };
3730 };
3731 
3732 
3733 
3734 //
3735 void VcCalc2SessionIfc::put4_wobYcont(const double values[], short dim1, short dim2, short dim3)
3736 {
3738  {
3740  "::put4_wobYcont(): the obs.index (" + QString("").setNum(obsIdx_) +
3741  ") is out of range [0..." + QString("").setNum(numOfObservations_) + "]");
3742  return;
3743  };
3744  if (!(dim1==2 && dim2==1 && dim3==1))
3745  {
3747  "::put4_wobYcont(): the dimensions (" + QString("").setNum(dim1) +
3748  "," + QString("").setNum(dim2) + "," + QString("").setNum(dim3) +
3749  ") are unexpected");
3750  return;
3751  };
3752  if (obs_)
3753  {
3754  obs_->setCalcPyDelay(values[0]);
3755  obs_->setCalcPyRate (values[1]);
3756  };
3757 };
3758 
3759 
3760 
3761 //
3762 void VcCalc2SessionIfc::put4_plx1psec(const double values[], short dim1, short dim2, short dim3)
3763 {
3765  {
3767  "::put4_plx1psec(): the obs.index (" + QString("").setNum(obsIdx_) +
3768  ") is out of range [0..." + QString("").setNum(numOfObservations_) + "]");
3769  return;
3770  };
3771  if (!(dim1==2 && dim2==1 && dim3==1))
3772  {
3774  "::put4_plx1psec(): the dimensions (" + QString("").setNum(dim1) +
3775  "," + QString("").setNum(dim2) + "," + QString("").setNum(dim3) +
3776  ") are unexpected");
3777  return;
3778  };
3779  if (obs_)
3780  {
3781  obs_->setDdel_dParallaxRev(values[0]);
3782  obs_->setDrat_dParallaxRev(values[1]);
3783  };
3784 };
3785 
3786 
3787 
3788 //
3789 void VcCalc2SessionIfc::put4_ct_site1(const double values[], short dim1, short dim2, short dim3)
3790 {
3792  {
3794  "::put4_ct_site1(): the obs.index (" + QString("").setNum(obsIdx_) +
3795  ") is out of range [0..." + QString("").setNum(numOfObservations_) + "]");
3796  return;
3797  };
3798  if (!(dim1==1 && dim2==1 && dim3==1))
3799  {
3801  "::put4_ct_site1(): the dimensions (" + QString("").setNum(dim1) +
3802  "," + QString("").setNum(dim2) + "," + QString("").setNum(dim3) +
3803  ") are unexpected");
3804  return;
3805  };
3806  if (obs_)
3807  {
3808  obs_->setFractC(values[0]);
3809  };
3810 };
3811 
3812 
3813 
3814 //
3815 void VcCalc2SessionIfc::put4_sun_data(const double values[], short dim1, short dim2, short dim3)
3816 {
3818  {
3820  "::put4_sun_data(): the obs.index (" + QString("").setNum(obsIdx_) +
3821  ") is out of range [0..." + QString("").setNum(numOfObservations_) + "]");
3822  return;
3823  };
3824  if (!(dim1==3 && dim2==2 && dim3==1))
3825  {
3827  "::put4_sun_data(): the dimensions (" + QString("").setNum(dim1) +
3828  "," + QString("").setNum(dim2) + "," + QString("").setNum(dim3) +
3829  ") are unexpected");
3830  return;
3831  };
3832  if (obs_)
3833  {
3834  obs_->setRsun(Sg3dVector(values[0], values[1], values[2]));
3835  obs_->setVsun(Sg3dVector(values[3], values[4], values[5]));
3836  };
3837 };
3838 
3839 
3840 
3841 //
3842 void VcCalc2SessionIfc::put4_moonData(const double values[], short dim1, short dim2, short dim3)
3843 {
3845  {
3847  "::put4_moonData(): the obs.index (" + QString("").setNum(obsIdx_) +
3848  ") is out of range [0..." + QString("").setNum(numOfObservations_) + "]");
3849  return;
3850  };
3851  if (!(dim1==3 && dim2==2 && dim3==1))
3852  {
3854  "::put4_moonData(): the dimensions (" + QString("").setNum(dim1) +
3855  "," + QString("").setNum(dim2) + "," + QString("").setNum(dim3) +
3856  ") are unexpected");
3857  return;
3858  };
3859  if (obs_)
3860  {
3861  obs_->setRmoon(Sg3dVector(values[0], values[1], values[2]));
3862  obs_->setVmoon(Sg3dVector(values[3], values[4], values[5]));
3863  };
3864 };
3865 
3866 
3867 
3868 //
3869 void VcCalc2SessionIfc::put4_earth_ce(const double values[], short dim1, short dim2, short dim3)
3870 {
3872  {
3874  "::put4_earth_ce(): the obs.index (" + QString("").setNum(obsIdx_) +
3875  ") is out of range [0..." + QString("").setNum(numOfObservations_) + "]");
3876  return;
3877  };
3878  if (!(dim1==3 && dim2==3 && dim3==1))
3879  {
3881  "::put4_earth_ce(): the dimensions (" + QString("").setNum(dim1) +
3882  "," + QString("").setNum(dim2) + "," + QString("").setNum(dim3) +
3883  ") are unexpected");
3884  return;
3885  };
3886  if (obs_)
3887  {
3888  obs_->setRearth(Sg3dVector(values[0], values[1], values[2]));
3889  obs_->setVearth(Sg3dVector(values[3], values[4], values[5]));
3890  obs_->setAearth(Sg3dVector(values[6], values[7], values[8]));
3891  };
3892 };
3893 
3894 
3895 
3896 //
3897 void VcCalc2SessionIfc::put4_nut06Xys(const double values[], short dim1, short dim2, short dim3)
3898 {
3900  {
3902  "::put4_nut06Xys(): the obs.index (" + QString("").setNum(obsIdx_) +
3903  ") is out of range [0..." + QString("").setNum(numOfObservations_) + "]");
3904  return;
3905  };
3906  if (!(dim1==3 && dim2==2 && dim3==1))
3907  {
3909  "::put4_nut06Xys(): the dimensions (" + QString("").setNum(dim1) +
3910  "," + QString("").setNum(dim2) + "," + QString("").setNum(dim3) +
3911  ") are unexpected");
3912  return;
3913  };
3914  if (obs_)
3915  {
3916  obs_->setCalcCipXv(values[0]);
3917  obs_->setCalcCipYv(values[1]);
3918  obs_->setCalcCipSv(values[2]);
3919  obs_->setCalcCipXr(values[3]);
3920  obs_->setCalcCipYr(values[4]);
3921  obs_->setCalcCipSr(values[5]);
3922  };
3923 };
3924 
3925 
3926 
3927 //
3928 void VcCalc2SessionIfc::put4_nut2006A(const double values[], short dim1, short dim2, short dim3)
3929 {
3931  {
3933  "::put4_nut06Xys(): the obs.index (" + QString("").setNum(obsIdx_) +
3934  ") is out of range [0..." + QString("").setNum(numOfObservations_) + "]");
3935  return;
3936  };
3937  if (!(dim1==2 && dim2==2 && dim3==1))
3938  {
3940  "::put4_nut06Xys(): the dimensions (" + QString("").setNum(dim1) +
3941  "," + QString("").setNum(dim2) + "," + QString("").setNum(dim3) +
3942  ") are unexpected");
3943  return;
3944  };
3945  if (obs_)
3946  {
3947  obs_->setCalcNut2006_dPsiV(values[0]);
3948  obs_->setCalcNut2006_dEpsV(values[1]);
3949  obs_->setCalcNut2006_dPsiR(values[2]);
3950  obs_->setCalcNut2006_dEpsR(values[3]);
3951  };
3952 };
3953 
3954 
3955 
3956 //
3957 void VcCalc2SessionIfc::put4_nut_wahr(const double values[], short dim1, short dim2, short dim3)
3958 {
3960  {
3962  "::put4_nut06Xys(): the obs.index (" + QString("").setNum(obsIdx_) +
3963  ") is out of range [0..." + QString("").setNum(numOfObservations_) + "]");
3964  return;
3965  };
3966  if (!(dim1==2 && dim2==2 && dim3==1))
3967  {
3969  "::put4_nut06Xys(): the dimensions (" + QString("").setNum(dim1) +
3970  "," + QString("").setNum(dim2) + "," + QString("").setNum(dim3) +
3971  ") are unexpected");
3972  return;
3973  };
3974  if (obs_)
3975  {
3976  obs_->setCalcNutWahr_dPsiV(values[0]);
3977  obs_->setCalcNutWahr_dEpsV(values[1]);
3978  obs_->setCalcNutWahr_dPsiR(values[2]);
3979  obs_->setCalcNutWahr_dEpsR(values[3]);
3980  };
3981 };
3982 
3983 
3984 
3985 //
3986 void VcCalc2SessionIfc::put4_cf2j2k (const double values[], short dim1, short dim2, short dim3)
3987 {
3989  {
3991  "::put4_cf2j2k(): the obs.index (" + QString("").setNum(obsIdx_) +
3992  ") is out of range [0..." + QString("").setNum(numOfObservations_) + "]");
3993  return;
3994  };
3995  if (!(dim1==3 && dim2==3 && dim3==3))
3996  {
3998  "::put4_cf2j2k(): the dimensions (" + QString("").setNum(dim1) +
3999  "," + QString("").setNum(dim2) + "," + QString("").setNum(dim3) +
4000  ") are unexpected");
4001  return;
4002  };
4003  if (obs_)
4004  {
4005  Sg3dMatrix val(values[ 0], values[ 1], values[ 2],
4006  values[ 3], values[ 4], values[ 5],
4007  values[ 6], values[ 7], values[ 8] );
4008  Sg3dMatrix rat(values[ 9], values[10], values[11],
4009  values[12], values[13], values[14],
4010  values[15], values[16], values[17] );
4011  Sg3dMatrix acc(values[18], values[19], values[20],
4012  values[21], values[22], values[23],
4013  values[24], values[25], values[26] );
4014  obs_->setTrf2crfVal(val);
4015  obs_->setTrf2crfRat(rat);
4016  obs_->setTrf2crfAcc(acc);
4017  };
4018 };
4019 
4020 
4021 
4022 
4023 void VcCalc2SessionIfc::put4_ut1_tai (const double values[], short dim1, short dim2, short dim3)
4024 {
4026  {
4028  "::put4_ut1_tai(): the obs.index (" + QString("").setNum(obsIdx_) +
4029  ") is out of range [0..." + QString("").setNum(numOfObservations_) + "]");
4030  return;
4031  };
4032  if (!(dim1==1 && dim2==1 && dim3==1))
4033  {
4035  "::put4_ut1_tai(): the dimensions (" + QString("").setNum(dim1) +
4036  "," + QString("").setNum(dim2) + "," + QString("").setNum(dim3) +
4037  ") are unexpected");
4038  return;
4039  };
4040  if (obs_)
4041  {
4042  obs_->setCalcUt1_Tai(values[0]);
4043  };
4044 };
4045 
4046 
4047 
4048 //
4049 void VcCalc2SessionIfc::put4_polar_xy(const double values[], short dim1, short dim2, short dim3)
4050 {
4052  {
4054  "::put4_polar_xy(): the obs.index (" + QString("").setNum(obsIdx_) +
4055  ") is out of range [0..." + QString("").setNum(numOfObservations_) + "]");
4056  return;
4057  };
4058  if (!(dim1==2 && dim2==1 && dim3==1))
4059  {
4061  "::put4_polar_xy(): the dimensions (" + QString("").setNum(dim1) +
4062  "," + QString("").setNum(dim2) + "," + QString("").setNum(dim3) +
4063  ") are unexpected");
4064  return;
4065  };
4066  if (obs_)
4067  {
4068  obs_->setCalcPmX(values[0]);
4069  obs_->setCalcPmY(values[1]);
4070  };
4071 };
4072 
4073 
4074 
4075 //
4076 void VcCalc2SessionIfc::put4_obsolete(UNUSED const double values[],
4077  UNUSED short dim1, UNUSED short dim2, UNUSED short dim3)
4078 {
4079 };
4080 
4081 
4082 
4083 
4084 
4085 /*=====================================================================================================*/
4086 
4087 
4088 
4089 
4090 
4091 
4092 
4093 
4094 
4095 
4096 
4097 
4098 
4099 
4100 /*=====================================================================================================*/
SgLogger * logger
Definition: SgLogger.cpp:231
#define DEG2RAD
hours to radians:
Definition: SgMathSupport.h:40
QMap< QString, SgVlbiSourceInfo * >::iterator SourcesByName_it
QMap< QString, SgVlbiStationInfo * >::iterator StationsByName_it
static const char * obsoleteLcodesR[]
static const char * obsoleteLcodesA[]
#define UNUSED
SgVersion vgosDbCalcVersion("vgosDbCalc", 0, 4, 4, "Tabler Run", SgMJD(2022, 2, 27, 16, 28))
QString path2(const QString &) const
Definition: NsSetup.h:1008
const QString & getPath2MasterFiles() const
Definition: NsSetup.h:446
SgIdentities & identities()
Definition: NsSetup.h:566
const QString & getPath2VgosDbFiles() const
Definition: NsSetup.h:430
void addAttr(uint a)
Definition: SgAttribute.h:202
virtual void write(LogLevel, quint32, const QString &, bool=false)
Definition: SgLogger.cpp:88
@ IO_NCDF
Definition: SgLogger.h:66
@ IO_TXT
Definition: SgLogger.h:65
@ IO_DBH
Definition: SgLogger.h:67
@ SESSION
Definition: SgLogger.h:77
Definition: SgMJD.h:59
void toYMDHMS_tr(int &nYear, int &nMonth, int &nDay, int &nHour, int &nMin, double &dSec) const
Definition: SgMJD.cpp:1305
static SgMJD currentMJD()
Definition: SgMJD.cpp:118
unsigned int nRow() const
Definition: SgMatrix.h:352
void setElement(unsigned int i, unsigned int j, double d)
Definition: SgMatrix.h:402
void setDefinition(const QString &def)
Definition: SgModelsInfo.h:73
void setOrigin(const QString &orig)
Definition: SgModelsInfo.h:74
void setControlFlag(const QString &flag)
Definition: SgModelsInfo.h:72
QList< SgVlbiStationInfo * > & stations()
Definition: SgModelsInfo.h:155
void setVersion(const QString &ver)
Definition: SgModelsInfo.h:124
DasModel & troposphere()
Definition: SgModelsInfo.h:145
DasModel & ut1Interpolation()
Definition: SgModelsInfo.h:140
QList< QString > & oLoadStationStatus()
Definition: SgModelsInfo.h:151
DasModel & earthTide()
Definition: SgModelsInfo.h:142
SgMatrix *& wobInterpData()
Definition: SgModelsInfo.h:154
void setDversion(double d)
Definition: SgModelsInfo.h:123
DasModel & nutation()
Definition: SgModelsInfo.h:141
DasModel & coordinateTime()
Definition: SgModelsInfo.h:134
QList< QString > & controlFlagNames()
Definition: SgModelsInfo.h:149
DasModel & feedHorn()
Definition: SgModelsInfo.h:148
void setFlagTidalUt1(short f)
Definition: SgModelsInfo.h:125
DasModel & polarMotion()
Definition: SgModelsInfo.h:137
DasModel & atomicTime()
Definition: SgModelsInfo.h:135
QList< double > & siteZenDelays()
Definition: SgModelsInfo.h:152
SgMatrix *& ut1InterpData()
Definition: SgModelsInfo.h:153
DasModel & oceanLoading()
Definition: SgModelsInfo.h:144
DasModel & parallax()
Definition: SgModelsInfo.h:147
DasModel & poleTide()
Definition: SgModelsInfo.h:143
DasModel & polarMotionInterpolation()
Definition: SgModelsInfo.h:138
DasModel & ephemeris()
Definition: SgModelsInfo.h:133
DasModel & star()
Definition: SgModelsInfo.h:132
DasModel & site()
Definition: SgModelsInfo.h:131
QList< int > & controlFlagValues()
Definition: SgModelsInfo.h:150
DasModel & axisOffset()
Definition: SgModelsInfo.h:146
DasModel & ut1()
Definition: SgModelsInfo.h:139
void setProgramName(const QString &name)
Definition: SgModelsInfo.h:122
DasModel & relativity()
Definition: SgModelsInfo.h:136
void setElement(unsigned int i, double d)
Definition: SgVector.h:348
bool init(const QString path, const QString fileName)
Definition: SgVgosDb.cpp:533
void setOcnLdV(const Sg3dVector &v)
void setAzimuthAngle(double angle)
void setDdel_dTzdDry(double v)
void setCalcNwetCont4Delay(double v)
void setCalcNdryCont4Delay(double v)
void setDrat_dTzdWet(double v)
void setCalcOLoadHorz4Delay(double v)
void setCalcOLoadHorz4Rate(double v)
void setDdel_dTzdGrdE(double v)
void setAzimuthAngleRate(double rate)
void setCalcOLoadVert4Rate(double v)
void setDrat_dTzdGrdE(double v)
void setParallacticAngle(double angle)
void setDdel_dTzdGrdN(double v)
void setCalcOLoadVert4Delay(double v)
void setCalcAxisOffset4Delay(double v)
void setDrat_dTzdGrdN(double v)
void setOcnLdR(const Sg3dVector &r)
void setCalcNwetCont4Rate(double v)
void setElevationAngle(double angle)
void setElevationAngleRate(double rate)
void setCalcNdryCont4Rate(double v)
void setDdel_dTzdWet(double v)
void setDrat_dTzdDry(double v)
void setCalcAxisOffset4Rate(double v)
void addHistoryRecord(const QString &, const SgMJD &t)
void setUvFrPerAsec(int i, double d)
double getReferenceFrequency() const
void setCalcFeedCorrDelay(double v)
void setCalcFeedCorrRate(double v)
void setCalcOceanTideDelay(double v)
void setCalcHiFyPxyRate(double v)
void setCalcNut2006_dPsiV(double v)
void setRearth(const Sg3dVector &r)
void setCalcConsBendingRate(double d)
void setCalcHiFyPxyDelay(double v)
void setDdel_dRA(double d)
void setDrat_dPolTideY(double d)
void setCalcOceanPoleTideLdDelay(double v)
void setDrat_dR_1(const Sg3dVector &r)
void setCalcHiFyUt1Rate(double v)
void setCalcPxDelay(double v)
void setCalcNut2006_dEpsV(double v)
void setCalcPoleTideDelay(double v)
void setDdel_dGamma(double d)
void setCalcTiltRemvrRate(double v)
SgVlbiAuxObservation * auxObs_2()
void setCalcConsBendingSunRate(double d)
void setRsun(const Sg3dVector &r)
void setCalcEarthTideDelay(double v)
void setCalcConsensusDelay(double tau)
void setCalcNut2006_dPsiR(double v)
void setCalcNut2006_dEpsR(double v)
void setVsun(const Sg3dVector &v)
void setCalcHiFyPxyLibrationRate(double v)
void setCalcPyDelay(double v)
void setCalcCipSr(double v)
void setCalcPoleTideOldDelay(double v)
void setDrat_dPolTideX(double d)
void setCalcPoleTideRate(double v)
void setCalcHiFyUt1LibrationDelay(double v)
void setCalcPmY(double d)
void setVmoon(const Sg3dVector &v)
void setCalcConsBendingSunHigherDelay(double d)
void setCalcConsensusRate(double r)
void setCalcUt1_Tai(double d)
void setCalcNutWahr_dEpsV(double v)
void setCalcNutWahr_dPsiV(double v)
void setDrat_dParallaxRev(double d)
void setDrat_dCipY(double d)
void setCalcCipYv(double v)
void setDrat_dGamma(double d)
void setCalcOceanTideOldRate(double v)
void setCalcFeedCorrDelay(double v)
void setDrat_dRA(double d)
void setTrf2crfAcc(const Sg3dMatrix &m)
void setD2rat_dUT12(double d)
void setCalcHiFyPxyLibrationDelay(double v)
void setTrf2crfVal(const Sg3dMatrix &m)
void setCalcPmX(double d)
void setCalcOceanTideOldDelay(double v)
void setDdel_dR_1(const Sg3dVector &r)
void setDdel_dUT1(double d)
void setDrat_dBend(double d)
void setVearth(const Sg3dVector &v)
void setDdel_dPolTideX(double d)
void setCalcCipXr(double v)
void setCalcCipSv(double v)
void setCalcConsBendingSunHigherRate(double d)
void setDdel_dCipY(double d)
void setCalcCipXv(double v)
void setDrat_dParallax(double d)
SgVlbiObservable * observable(const QString &)
void setCalcNutWahr_dEpsR(double v)
void setDdel_dParallax(double d)
void setCalcEarthTideRate(double v)
void setDdel_dPy(double d)
void setD2del_dUT12(double d)
void setCalcFeedCorrRate(double v)
void setDdel_dPx(double d)
void setCalcTiltRemvrDelay(double v)
void setDdel_dCipX(double d)
void setRmoon(const Sg3dVector &r)
void setCalcOceanPoleTideLdRate(double v)
void setCalcConsBendingDelay(double d)
void setDdel_dBend(double d)
void setCalcOceanTideRate(double v)
SgVlbiAuxObservation * auxObs_1()
void setDrat_dCipX(double d)
void setCalcHiFyUt1LibrationRate(double v)
void setCalcHiFyUt1Delay(double v)
void setDrat_dPx(double d)
void setDdel_dParallaxRev(double d)
void setAearth(const Sg3dVector &a)
void setCalcPyRate(double v)
void setDrat_dDN(double d)
void setCalcPxRate(double v)
void setDdel_dR_2(const Sg3dVector &r)
void setCalcNutWahr_dPsiR(double v)
void setCalcPoleTideOldRate(double v)
void setCalcConsBendingSunDelay(double d)
void setDrat_dUT1(double d)
void setTrf2crfRat(const Sg3dMatrix &m)
void setFractC(double d)
void setDrat_dR_2(const Sg3dVector &r)
void setDrat_dPy(double d)
void setCalcCipYr(double v)
void setDdel_dPolTideY(double d)
void setDdel_dDN(double d)
@ Attr_FF_CALC_DATA_MODIFIED
the theoretical values were modified; //vgosDbCalc
bool getDataFromVgosDb(SgVgosDb *vgosDb, bool have2LoadImmatureSession, bool guiExpected)
void allocPxyInterpolValues(const SgMatrix *vals)
void setLeapSeconds(double s)
SgVlbiHistory & contemporaryHistory()
SgModelsInfo & calcInfo()
QMap< QString, SgVlbiStationInfo * > & stationsByName()
void allocPxyInterpolEpochs(double t0, double dt, unsigned int numOfPts)
void allocUt1InterpolEpochs(double t0, double dt, unsigned int numOfPts)
QList< SgVlbiObservation * > & observations()
void allocUt1InterpolValues(const SgVector *vals)
void setPath2Masterfile(const QString &)
QMap< QString, SgVlbiSourceInfo * > & sourcesByName()
bool putDataIntoVgosDb(SgVgosDb *vgosDb)
void setDN(double dn)
void setRA(double ra)
void setAprioriReference(const QString &ref)
void setR(const Sg3dVector &r)
void setTilt(int i, double v)
void setMntType(MountingType m)
void setTectonicPlateName(const QString &name)
void setOLoadPhase(int iWave, int iCoord, double phase)
void setAxisOffset(double v)
void setOptLoadCoeff(int idx, double c)
void setOLoadAmplitude(int iWave, int iCoord, double amplitude)
short getI_intrval4(short values[], short dim1, short dim2, short dim3, short actualDimension[])
void putR_siteZens(const double values[], short dim1, short dim2, short dim3)
void putR_sitOcPhs(const double values[], short dim1, short dim2, short dim3)
void put4_oce_old(const double values[], short dim1, short dim2, short dim3)
void putA_etd_mess(const char values[], short dim1, short dim2, short dim3)
void put4_plx1psec(const double values[], short dim1, short dim2, short dim3)
void put4_sit_part(const double values[], short dim1, short dim2, short dim3)
short mimic_MvRec(short ntoc, short kmode, short knum)
void putA_oce_cFlg(const char values[], short dim1, short dim2, short dim3)
void putA_wob_cFlg(const char values[], short dim1, short dim2, short dim3)
void put4_fWob_inf(const double values[], short dim1, short dim2, short dim3)
QMap< QString, pmfDelV > delIbyLCode_
void putA_cti_cFlg(const char values[], short dim1, short dim2, short dim3)
void put4_nWetPart(const double values[], short dim1, short dim2, short dim3)
void put4_axo_part(const double values[], short dim1, short dim2, short dim3)
short get4_sec_Tag(double values[], short dim1, short dim2, short dim3, short actualDimension[])
void put4_el_theo(const double values[], short dim1, short dim2, short dim3)
void put4_moonData(const double values[], short dim1, short dim2, short dim3)
void setBandList(const QList< QString > &bands)
void put4_nDryPart(const double values[], short dim1, short dim2, short dim3)
void putA_oce_mess(const char values[], short dim1, short dim2, short dim3)
short getA_baseline(char values[], short dim1, short dim2, short dim3, short actualDimension[])
void put4_feed_cor(const double values[], short dim1, short dim2, short dim3)
void putI_axisTyps(const short values[], short dim1, short dim2, short dim3)
void mimicPutI(const QString &lCode, const short values[], short dim1, short dim2, short dim3)
void mimicPutA(const QString &lCode, const char values[], short dim1, short dim2, short dim3)
void putA_fWobText(const char values[], short dim1, short dim2, short dim3)
void putA_ati_cFlg(const char values[], short dim1, short dim2, short dim3)
void putA_cti_mess(const char values[], short dim1, short dim2, short dim3)
void putA_ut1_cFlg(const char values[], short dim1, short dim2, short dim3)
void putA_str_mess(const char values[], short dim1, short dim2, short dim3)
short getI_utc_tag4(short values[], short dim1, short dim2, short dim3, short actualDimension[])
void putR_sitHocPh(const double values[], short dim1, short dim2, short dim3)
void putA_ut1Intrp(const char values[], short dim1, short dim2, short dim3)
void putA_str_cFlg(const char values[], short dim1, short dim2, short dim3)
void put4_oce_cont(const double values[], short dim1, short dim2, short dim3)
void mimicDelR(short nToc, const QString &lCode)
void put4_ct_site1(const double values[], short dim1, short dim2, short dim3)
void put4_nDryCont(const double values[], short dim1, short dim2, short dim3)
void putA_etd_cFlg(const char values[], short dim1, short dim2, short dim3)
void putA_fUt1Text(const char values[], short dim1, short dim2, short dim3)
void putA_star_ref(const char values[], short dim1, short dim2, short dim3)
void put4_nut_wahr(const double values[], short dim1, short dim2, short dim3)
void put4_wobLibra(const double values[], short dim1, short dim2, short dim3)
void put4_tiltRmvr(const double values[], short dim1, short dim2, short dim3)
QMap< QString, pmfGetA > getAbyLCode_
void put4_etd_cont(const double values[], short dim1, short dim2, short dim3)
short mimicGetI(const QString &lCode, short values[], short dim1, short dim2, short dim3, short actualDimension[])
void put4_ut1Epoch(const double values[], short dim1, short dim2, short dim3)
void putR_siteRecs(const double values[], short dim1, short dim2, short dim3)
SgVlbiObservation * obs_
void put4_bendPart(const double values[], short dim1, short dim2, short dim3)
void putR_sitOcAmp(const double values[], short dim1, short dim2, short dim3)
QMap< QString, pmfGetI > getIbyLCode_
QMap< QString, pmfDelV > delAbyLCode_
short getA_strNames(char values[], short dim1, short dim2, short dim3, short actualDimension[])
SgVlbiAuxObservation * aux1_
void put4_fWobXnYt(const double values[], short dim1, short dim2, short dim3)
void mimicAddI(short nToc, const QString &lCode, const QString &descr, short dim1, short dim2, short dim3)
void mimicDel4(short nToc, const QString &lCode)
void put4_axo_cont(const double values[], short dim1, short dim2, short dim3)
CalcCallingMode calcCallingMode_
void putA_plx_mess(const char values[], short dim1, short dim2, short dim3)
QMap< QString, pmfDelV > delRbyLCode_
void put4_oce_vert(const double values[], short dim1, short dim2, short dim3)
void delA_obsolete(const QString &lCode, short nToc)
void mimicAddJ(short nToc, const QString &lCode, const QString &descr, short dim1, short dim2, short dim3)
short getI_utc_tag2(short values[], short dim1, short dim2, short dim3, short actualDimension[])
void put4_wobEpoch(const double values[], short dim1, short dim2, short dim3)
SgVlbiSession * session_
void putI_tidalUt1(const short values[], short dim1, short dim2, short dim3)
void putA_ptd_cFlg(const char values[], short dim1, short dim2, short dim3)
void put4_nGradPar(const double values[], short dim1, short dim2, short dim3)
void putA_nut_cFlg(const char values[], short dim1, short dim2, short dim3)
QList< QString > bandList_
void put4_oce_horz(const double values[], short dim1, short dim2, short dim3)
void put4_ut1_tai(const double values[], short dim1, short dim2, short dim3)
void put4_tai__utc(const double values[], short dim1, short dim2, short dim3)
void put4_ut1Ortho(const double values[], short dim1, short dim2, short dim3)
short getA_starId(char values[], short dim1, short dim2, short dim3, short actualDimension[])
void put4_polar_xy(const double values[], short dim1, short dim2, short dim3)
QMap< QString, pmfPutR > putRbyLCode_
short getI_numSites(short values[], short dim1, short dim2, short dim3, short actualDimension[])
void put4_optlCont(const double values[], short dim1, short dim2, short dim3)
SgVlbiAuxObservation * aux2_
void put4_fUt1_inf(const double values[], short dim1, short dim2, short dim3)
void put4_sun_data(const double values[], short dim1, short dim2, short dim3)
QMap< QString, pmfPut4 > put4byLCode_
void mimicDelA(short nToc, const QString &lCode)
void mimicDelJ(short nToc, const QString &lCode)
void putI_calcFlgV(const short values[], short dim1, short dim2, short dim3)
void put4_sun_cont(const double values[], short dim1, short dim2, short dim3)
void put4_obsolete(const double values[], short dim1, short dim2, short dim3)
void putA_calcFlgN(const char values[], short dim1, short dim2, short dim3)
void put4_az_theo(const double values[], short dim1, short dim2, short dim3)
void putA_wob_mess(const char values[], short dim1, short dim2, short dim3)
void putA_atm_mess(const char values[], short dim1, short dim2, short dim3)
void put4_cf2j2k(const double values[], short dim1, short dim2, short dim3)
void put4_calc_ver(const double values[], short dim1, short dim2, short dim3)
void putA_ati_mess(const char values[], short dim1, short dim2, short dim3)
void put4_ptOldCon(const double values[], short dim1, short dim2, short dim3)
void mimicAddR(short nToc, const QString &lCode, const QString &descr, short dim1, short dim2, short dim3)
void mimic_pHist(const QString &histRecord)
void put4_parAngle(const double values[], short dim1, short dim2, short dim3)
void put4_wobYcont(const double values[], short dim1, short dim2, short dim3)
void putR_axisOffs(const double values[], short dim1, short dim2, short dim3)
void mimicAdd4(short nToc, const QString &lCode, const QString &descr, short dim1, short dim2, short dim3)
void putA_pep_mess(const char values[], short dim1, short dim2, short dim3)
void putA_axo_mess(const char values[], short dim1, short dim2, short dim3)
void put4_ut1_part(const double values[], short dim1, short dim2, short dim3)
void put4_ptd_cont(const double values[], short dim1, short dim2, short dim3)
void putA_pan_mess(const char values[], short dim1, short dim2, short dim3)
void put4_ut1Libra(const double values[], short dim1, short dim2, short dim3)
void putA_atm_cFlg(const char values[], short dim1, short dim2, short dim3)
void putR_sitHocAm(const double values[], short dim1, short dim2, short dim3)
void putA_wobIntrp(const char values[], short dim1, short dim2, short dim3)
void put4_wob_part(const double values[], short dim1, short dim2, short dim3)
void put4_consnDel(const double values[], short dim1, short dim2, short dim3)
void put4_uvf_asec(const double values[], short dim1, short dim2, short dim3)
short mimicGetA(const QString &lCode, char values[], short dim1, short dim2, short dim3, short actualDimension[])
void put4_nut06Xys(const double values[], short dim1, short dim2, short dim3)
void putA_axo_cFlg(const char values[], short dim1, short dim2, short dim3)
void put4_pTdXyPar(const double values[], short dim1, short dim2, short dim3)
void putA_ptd_mess(const char values[], short dim1, short dim2, short dim3)
void put4_fUt1_pts(const double values[], short dim1, short dim2, short dim3)
short get4_rotEpoch(double values[], short dim1, short dim2, short dim3, short actualDimension[])
void put4_oce_deld(const double values[], short dim1, short dim2, short dim3)
void mimic_Kai(short openMode, const QString &inputDbName, short inputDbVersion, const QString &outputDbName, short &outputDbVersion, short &errorFlag)
short get4_ref_freq(double values[], short dim1, short dim2, short dim3, short actualDimension[])
void put4_con_cont(const double values[], short dim1, short dim2, short dim3)
void mimicAddA(short nToc, const QString &lCode, const QString &descr, short dim1, short dim2, short dim3)
void put4_earth_ce(const double values[], short dim1, short dim2, short dim3)
void putA_plx_cFlg(const char values[], short dim1, short dim2, short dim3)
void put4_str_part(const double values[], short dim1, short dim2, short dim3)
void putA_obsolete(const char values[], short dim1, short dim2, short dim3)
static const QString className()
void mimicPutR(const QString &lCode, const double values[], short dim1, short dim2, short dim3)
void put4_nut2006A(const double values[], short dim1, short dim2, short dim3)
void putA_rel_cFlg(const char values[], short dim1, short dim2, short dim3)
void put4_nut06XyP(const double values[], short dim1, short dim2, short dim3)
void put4_sun2cont(const double values[], short dim1, short dim2, short dim3)
short getA_sitNames(char values[], short dim1, short dim2, short dim3, short actualDimension[])
short getI_numStars(short values[], short dim1, short dim2, short dim3, short actualDimension[])
QMap< QString, pmfDelV > delJbyLCode_
QMap< QString, pmfPutI > putIbyLCode_
void put4_consPart(const double values[], short dim1, short dim2, short dim3)
void put4_nWetCont(const double values[], short dim1, short dim2, short dim3)
void putA_nut_mess(const char values[], short dim1, short dim2, short dim3)
void putR_optlCoef(const double values[], short dim1, short dim2, short dim3)
void putA_sit_mess(const char values[], short dim1, short dim2, short dim3)
void putA_tectPlNm(const char values[], short dim1, short dim2, short dim3)
QMap< QString, pmfGet4 > get4byLCode_
void putA_oce_stat(const char values[], short dim1, short dim2, short dim3)
void put4_plx_part(const double values[], short dim1, short dim2, short dim3)
QMap< QString, int > bandDepPutsByLCode_
SgVlbiObservable * o_
QMap< QString, pmfPutA > putAbyLCode_
void put4_wobOrtho(const double values[], short dim1, short dim2, short dim3)
void delR_obsolete(const QString &lCode, short nToc)
void put4_wobXcont(const double values[], short dim1, short dim2, short dim3)
void putA_the_mess(const char values[], short dim1, short dim2, short dim3)
void putA_ut1_mess(const char values[], short dim1, short dim2, short dim3)
void put4_consnRat(const double values[], short dim1, short dim2, short dim3)
short mimicGet4(const QString &lCode, double values[], short dim1, short dim2, short dim3, short actualDimension[])
void mimicPut4(const QString &lCode, const double values[], short dim1, short dim2, short dim3)
void putR_axisTilt(const double values[], short dim1, short dim2, short dim3)
void mimicDelI(short nToc, const QString &lCode)
QMap< QString, pmfDelV > del4byLCode_
void putR_star2000(const double values[], short dim1, short dim2, short dim3)
NsSetup setup
Definition: nuSolve.cpp:61
QString fortArray2QString(const char *chrs, size_t len)