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