Mapper
shdeca.c
Go to the documentation of this file.
1 /*Translated by FOR_C, v3.4.2 (-), on 06/07/94 at 16:59:43 */
2 /*FOR_C Options SET: c=2 com=u do=r4 ftn=2ln6k op=iv s=dvn str=l sq=i */
3 
4 #define _POSIX_SOURCE
5 #include <stdio.h>
6 #include <stdlib.h>
7 #include <ctype.h>
8 #include <dirent.h>
9 #include <unistd.h>
10 #include <math.h>
11 #include <string.h>
12 #include <fcntl.h>
13 #include <sys/stat.h>
14 #include "shef_structs_external.h"
15 
16 /*---------------------------------------------------------------------
17 
18  SUBROUTINE SHDECA(IREV,STATUS)
19 
20  PURPOSE
21  Decode SHEF .A format
22  IREV = 1 FOR REVISED, = 0 FOR NEW DATA
23 
24  VERSION and UPDATES
25  1.0 APR 82 Geoffrey M. Bonnin
26  Original Version
27  1.1 JAN 84 Geoff Bonnin
28  Improve testing for bad dates on date relative adjustment
29  1.2 AUG 84 Geoff Bonnin
30  Change creation date test to non-fatal and seconds to times
31  1.3 MAY 85 Geoff Bonnin
32  Correct error in adjusting to prev 7am
33  1.4 MAR 86
34  Fix error in subsequet revision continuation
35  1.5 JUN 89 David G. Brandon
36  Adapted to QNX Hydromet
37  2.0 JUN 94 David G. Brandon
38  Include NSFLAG for selected send codes
39  Also Translated to 'C' using FOR_C
40  Removed alternate returns in subroutines
41  2.1 APR 95 David G. Brandon
42  Changed shefpass to pass all parameters in argument
43  list...prepare for INFORMIX posting.
44  2.2 Add iscore to t_codes array.
45  2.3 NOV 95 DGB
46  Add check to place nyear and k1 in correct century.
47  Allow for all valid qualifier codes...excepting
48  'O' and 'I'.
49  2.4 DEC 95 DGB
50  Do not process DC when they are missing, or the month
51  k2 is set to 0.
52  2.5 JAN 96 DGB
53  Update struct t_data to include lcent
54  and kcent for the century.
55  2.6 SEP 10 97 DGB
56  Add the use of MAX_SHEF_INPUT so that the input line can
57  be longer than 80 characters.
58  Add capability to output a database comment.
59  2.7 DEC 1 97 DGB
60  Add advanced test option will will print a shefout
61  record to the error file.
62  2.8 FEB 4 98 DGB
63  Fixed -10000 null problem...so -10000 would not print.
64  2.9 JAN 18 99 DGB
65  Check/compute correct century/year if override
66  was specified.
67  3.0 AUG 29 02 DGB
68  Check for hour specified as '24' and change to '00'
69 
70  *--------------------------------------------------------------------- */
71 
72 
73 void shdeca(irev, status)
74 short int *irev, *status;
75 {
76  int DEBUG1;
77  int itest, overflag; /* dgb:01/16/99 */
78 
79  static char iname[9];
80  static short int iadj, idote, idur, iend_, ival, k1,
81  k2, k3, k4, k5, k6, lwal, nday, ndig, nflag,
82  nhour, nmin, nmon, nsec, num, nyear, i, flag,
83  ncent;
84 
85  static double factor;
86 
87  /* OFFSET Vectors w/subscript range: 1 to dimension */
88  short *const Idate = &datim_.idate[0] - 1; /* dgb:01/96 */
89  short *const Ibuf = &buffer_.ibuf[0] - 1;
90  short *const Idstn = &data_.idstn[0] - 1;
91  short *const Msource = &data_.msource[0] - 1;
92 
93 
94  DEBUG1 = 0;
95  if ( DEBUG1 ) printf("\nshdeca:begin");
96 
97  data_.overmonth = -1; /* dgb:01/18/99 */
98  data_.overyear = -1; /* dgb:01/18/99 */
99  data_.overcentury = -1; /* dgb:01/18/99 */
100 
101  *status = 0;
102  data_.itz = 0;
103  idote = 0;
104  Msource[1] = codes_.iblnk;
105  Msource[2] = codes_.iblnk;
106  Msource[3] = codes_.iblnk;
107  Msource[4] = codes_.iblnk;
108  Msource[5] = codes_.iblnk;
109  Msource[6] = codes_.iblnk;
110  Msource[7] = codes_.iblnk;
111  Msource[8] = codes_.iblnk;
112 
113  /* Check for Continuation */
114 
115  if( format_.iform > 0 )
116  goto L_10;
118  if( (format_.lform != 1) && (format_.lform != 2) )
119  goto L_9020;
120  if( (format_.iform == 2) && (format_.lform == 1) )
121  goto L_9030;
122  if( (format_.iform == 1) && (format_.lform == 2) )
123  *irev = 1;
124  if( (format_.iform == 1) && (format_.lform == 2) )
125  format_.iform = 2;
126  if( format_.nerr > 0 )
127  goto L_9040;
128  goto L_30;
129 
130  /* Defaults */
131 
132 L_10:
133  data_.kyear = 0;
134  data_.kmon = 0;
135  data_.kday = 0;
136  data_.khour = 0;
137  data_.kmin = 0;
138  data_.ksec = 0;
139  data_.kwal = codes_.ichz;
140  data_.kodu = 1;
141  datrel_.mcent = 0; /* dgb cent */
142  datrel_.myear = 0;
143  datrel_.mmon = 0;
144  datrel_.mday = 0;
145  datrel_.mhour = 0;
146  datrel_.mmin = 0;
147  datrel_.msec = 0;
148  datrel_.mend = 0;
149  data_.idcodd = 5000;
150  format_.nerr = 0;
151 
152  /* Get the Positional Data */
153 
154  shpos( status );
155  if( *status == 1 )
156  {
157  *status = 0;
158  goto L_9050;
159  }
160  else if( *status == 2 )
161  {
162  *status = 0;
163  goto L_9010;
164  }
165 
166  /* Get the date and data type elements */
167 
168 L_30:
169  flag = 1;
170  shdtype( &flag, status );
171  if( *status == 1 )
172  {
173  *status = 0;
174  goto L_9000;
175  }
176  else if( *status == 2 )
177  {
178  *status = 0;
179  goto L_9010;
180  }
181  else if( *status == 3 )
182  {
183  *status = 0;
184  goto L_9000;
185  }
186 
187  /* Get the Parameter Code */
188 
190  &data_.kods, &data_.kodex, &data_.codp, &factor, status );
191  if( *status == 1 )
192  {
193  *status = 0;
194  goto L_9000;
195  }
196  else if( *status == 2 )
197  {
198  *status = 0;
199  goto L_9010;
200  }
201  else if( *status == 3 )
202  {
203  *status = 0;
204  goto L_9000;
205  }
206 
207  if( xchar_.ichar != codes_.iblnk )
208  goto L_9120;
209 
210  /* Test for Correct Duration */
211 
212  if( (data_.icodd == 5003) && (data_.idcodd == 5000) )
213  goto L_9080;
214  idur = data_.icodd;
215  if( data_.icodd == 5003 )
216  idur = data_.idcodd;
217 
218  /* Test if Creation Date Specified for Forecast Data */
219 
220  if( (data_.kodt == codes_.ichf) && (data_.kmon == 0) )
221  {
222  flag = 23;
223  sherr( &flag );
224  }
225 
226  /* Get the Value */
227 
228  if( buffer_.ip > MAX_SHEF_INPUT ) /* dgb:09/10/97 */
229  goto L_9000;
230 
231  flag = 0;
232  shreal( &data_.value, &flag, &ndig, status );
233  if( *status == 1 )
234  {
235  *status = 0;
236  goto L_43;
237  }
238  else if( *status == 2 )
239  {
240  *status = 0;
241  goto L_9010;
242  }
243  iend_ = 0;
244  goto L_45;
245 
246 L_43:
247  iend_ = 1;
248 L_45:
249  if( ndig <= 0 )
250  goto L_9100;
251 
252  /* Adjust for Trace */
253 
254  if( data_.value >= -8e10 )
255  goto L_50;
256  if( data_.kodp != codes_.ichp )
257  goto L_47;
258  if( data_.kode == codes_.ichc )
259  goto L_48;
260  if( data_.kode == codes_.ichp )
261  goto L_48;
262  goto L_9090;
263 
264 L_47:
265  if( data_.kodp != codes_.ichs )
266  goto L_9090;
267  if( data_.kode == codes_.ichd )
268  goto L_48;
269  if( data_.kode == codes_.ichf )
270  goto L_48;
271  if( data_.kode == codes_.ichw )
272  goto L_48;
273  goto L_9090;
274 
275 L_48:
276  data_.value = 0.001e0;
277  goto L_60;
278 
279  /* Convert SI to English Units if Necessary */
280 
281 L_50:
282  if( data_.kodu == 1 )
283  goto L_60;
284  ival = data_.value - 0.01;
285  if( ival == -9999 )
286  goto L_60;
287  if( ival == -9002 )
288  goto L_60;
289  if( factor < 0e0 )
290  data_.value = data_.value*1.8e0 + 32.0e0;
291  if( factor > 0e0 )
292  data_.value = data_.value*factor;
293 
294  /* Test the Qualifier - It Should be in ICHAR Already */
295 
296 L_60:
297  if( iend_ == 1 )
298  goto L_65;
299  /* pass all alphabetical characters except 'O' and 'I' dgb:11/13/95 */
300  irang(&xchar_.ichar,&codes_.icha,&codes_.ichz,status);
301  if ( !*status )
302  {
303  if ( xchar_.ichar == codes_.icho ) goto L_9120;
304  if ( xchar_.ichar == codes_.ichi ) goto L_9120;
305  *status = 0;
306  goto L_70;
307  }
308  if( xchar_.ichar == codes_.iblnk )
309  goto L_65;
310  if( xchar_.ichar == codes_.islash )
311  goto L_65;
312  goto L_9120;
313 
314 L_65:
315  lwal = data_.kwal;
316  nflag = 0;
317  goto L_80;
318 
319 L_70:
320  lwal = xchar_.ichar;
321  nflag = 1;
322 
323  /* Adjust the Observation time to 7AM Previous Day.
324  * Can't do it if ZULU time or Date REL has Been Specified */
325 
326 L_80:
327 
328  ncent = data_.lcent;
329  nyear = data_.lyear;
330  nmon = data_.lmon;
331  nday = data_.lday;
332  nhour = data_.lhour;
333  nmin = data_.lmin;
334  nsec = data_.lsec;
335 
336  if( sendflg_.nsflag == 0 )
337  goto L_83;
338  if( data_.nadjtz == 0 )
339  goto L_9110;
340  if( datrel_.mcent != 0 ) /* dgb:01/96 */
341  goto L_9110;
342  if( datrel_.myear != 0 )
343  goto L_9110;
344  if( datrel_.mmon != 0 )
345  goto L_9110;
346  if( datrel_.mday != 0 )
347  goto L_9110;
348  if( datrel_.mhour != 0 )
349  goto L_9110;
350  if( datrel_.mmin != 0 )
351  goto L_9110;
352  if( datrel_.msec != 0 )
353  goto L_9110;
354  sendflg_.nsflag = 0;
355  iadj = -1;
356  if( nhour < 7 )
357  {
358  flag = 3;
359  shtadj( &nyear, &nmon, &nday, &nhour, &nmin, &nsec, &iadj,
360  &flag, status );
361  }
362  if( *status == 1 )
363  {
364  *status = 0;
365  goto L_9000;
366  }
367  nhour = 7;
368  nmin = 0;
369  nsec = 0;
370  goto L_85;
371 
372  /* Adjust for Date Relative for Year, Month and Day */
373 
374 L_83:
375  flag = 3;
376  shtadj( &nyear, &nmon, &nday, &nhour, &nmin, &nsec, &datrel_.mday,
377  &flag, status );
378  if( *status == 1 )
379  {
380  *status = 0;
381  goto L_9000;
382  }
383  flag = 4;
384  shtadj( &nyear, &nmon, &nday, &nhour, &nmin, &nsec, &datrel_.mmon,
385  &flag, status );
386  if( *status == 1 )
387  {
388  *status = 0;
389  goto L_9000;
390  }
391  flag = 5;
392  shtadj( &nyear, &nmon, &nday, &nhour, &nmin, &nsec, &datrel_.myear,
393  &flag, status );
394  if( *status == 1 )
395  {
396  *status = 0;
397  goto L_9000;
398  }
399  flag = 6;
400  shtadj( &nyear, &nmon, &nday, &nhour, &nmin, &nsec, &datrel_.mend,
401  &flag, status );
402  if( *status == 1 )
403  {
404  *status = 0;
405  goto L_9000;
406  }
407  shtdat( &nyear, &nmon, &nday, status );
408  if( *status == 1 )
409  {
410  *status = 0;
411  goto L_9070;
412  }
413 
414  /* Test for Local Time Zone and Adjust to ZULU Time */
415 
416 L_85:
417  iadj = 0;
418  shlocl( &nyear, &nmon, &nday, &nhour, &nmin, &nsec, &data_.nadjtz,
419  &iadj, status );
420  if( *status == 1 )
421  {
422  *status = 0;
423  goto L_9000;
424  }
425  flag = 1;
426  shtadj( &nyear, &nmon, &nday, &nhour, &nmin, &nsec, &iadj, &flag,
427  status );
428  if( *status == 1 )
429  {
430  *status = 0;
431  goto L_9000;
432  }
433  k1 = data_.kyear;
434  k2 = data_.kmon;
435  k3 = data_.kday;
436  k4 = data_.khour;
437  k5 = data_.kmin;
438  k6 = data_.ksec;
439 
440  if( data_.kmon == 0 )
441  goto L_87;
442  iadj = 0;
443 
444  shlocl( &k1, &k2, &k3, &k4, &k5, &k6, &data_.nadjtz, &iadj, status );
445  if( *status == 1 )
446  {
447  *status = 0;
448  goto L_9000;
449  }
450  flag = 1;
451  shtadj( &k1, &k2, &k3, &k4, &k5, &k6, &iadj, &flag, status );
452  if( *status == 1 )
453  {
454  *status = 0;
455  goto L_9000;
456  }
457 
458  /* Adjust for Date Relative for Hour, Minute and Second */
459 
460 L_87:
461  flag = 7;
462  shtadj( &nyear, &nmon, &nday, &nhour, &nmin, &nsec, &datrel_.msec,
463  &flag, status );
464  if( *status == 1 )
465  {
466  *status = 0;
467  goto L_9000;
468  }
469  flag = 1;
470  shtadj( &nyear, &nmon, &nday, &nhour, &nmin, &nsec, &datrel_.mmin,
471  &flag, status );
472  if( *status == 1 )
473  {
474  *status = 0;
475  goto L_9000;
476  }
477  flag = 2;
478  shtadj( &nyear, &nmon, &nday, &nhour, &nmin, &nsec, &datrel_.mhour,
479  &flag, status );
480  if( *status == 1 )
481  {
482  *status = 0;
483  goto L_9000;
484  }
485 
486  /* Test for correct year if a month override was specified
487  && explicit year was not specified */
488  if ( data_.overyear > - 1 && data_.overcentury == -1 ) /* dgb:01/18/99 */
489  if ( data_.overyear > 30 ) nyear = data_.overyear + 1900; /* dgb:01/18/99 */
490  else
491  if ( data_.overyear > -1 && data_.overcentury > -1 )
492  nyear = (data_.overcentury * 100) + data_.overyear;
493 
494  if ( data_.overmonth > -1 && data_.overyear == -1 ) /* dgb:01/18/99 */
495  {
496  itest = nmon - Idate[1];
497  if ( itest > 6 ) nyear--;
498  if ( itest < -6 ) nyear++;
499  if ( (itest == -6 ) & ( nday < Idate[2] ) )
500  nyear++;
501  if ( (itest == 6 ) && ( nday > Idate[2] ) )
502  nyear--;
503  }
504 
505  if ( nhour == 24 ) /* dgb:08/29/02 */
506  check_24( &nyear, &nmon, &nday, &nhour, &nmin, &nsec ); /* dgb:08/29/02 */
507 
508 
509  /* Write the shef_out File */
510  if ( data_.value != -10000 ) /* dgb:02/04/98 */
511  {
512  if( cont_.out_flag[0] == '+' )
513  {
514  fprintf(fp_.jchn,
515  "%c%c%c%c%c%c%c%c %4d %2d %2d %2d %2d %2d %4d %2d %2d %2d %2d %2d ",
516  data_.idstn[0], data_.idstn[1], data_.idstn[2], data_.idstn[3],
517  data_.idstn[4], data_.idstn[5], data_.idstn[6], data_.idstn[7],
518  nyear, nmon, nday, nhour, nmin, nsec, k1, k2, k3, k4, k5, k6);
519 
520  fprintf(fp_.jchn,
521  "%c%c%c%c%c%c%c %4d %20.6f %20.6f %c %d %c%c%c%c%c%c%c%c %d %s\n",
523  data_.kodex, durprob_.kodpr, idur, data_.codp, data_.value, lwal, *irev,
526  idote,comment_.comment ); /* dgb:09/10/97 */
527 
528 
529  if ( test_.atest_flag ) /* dgb:12/01/97 */
530  {
531  fprintf(fp_.icher,
532  "%c%c%c%c%c%c%c%c %4d %2d %2d %2d %2d %2d %4d %2d %2d %2d %2d %2d ",
533  data_.idstn[0], data_.idstn[1], data_.idstn[2], data_.idstn[3],
534  data_.idstn[4], data_.idstn[5], data_.idstn[6], data_.idstn[7],
535  nyear, nmon, nday, nhour, nmin, nsec, k1, k2, k3, k4, k5, k6);
536 
537  fprintf(fp_.icher,
538  "%c%c%c%c%c%c%c %4d %20.6f %20.6f %c %d %c%c%c%c%c%c%c%c %d %s\n",
540  data_.kodex, durprob_.kodpr, idur, data_.codp, data_.value, lwal, *irev,
543  idote,comment_.comment ); /* dgb:09/10/97 */
544  }
545 
546 
547  }
548 
549 
550  /* Pass Data to shefpass Routine */
551 
552  if( cont_.post_flag[0] == '+' )
553  {
554 
555  shefpass( data_.idstn[0],
556  data_.idstn[1],
557  data_.idstn[2],
558  data_.idstn[3],
559  data_.idstn[4],
560  data_.idstn[5],
561  data_.idstn[6],
562  data_.idstn[7],
563  nyear,
564  nmon,
565  nday,
566  nhour,
567  nmin,
568  nsec,
569  k1,
570  k2,
571  k3,
572  k4,
573  k5,
574  k6,
575  data_.kodp,
576  data_.kode,
577  durprob_.kodd,
578  data_.kodt,
579  data_.kods,
580  data_.kodex,
581  durprob_.kodpr,
582  idur,
583  data_.codp,
584  data_.value,
585  lwal,
586  *irev,
587  data_.msource[0],
588  data_.msource[1],
589  data_.msource[2],
590  data_.msource[3],
591  data_.msource[4],
592  data_.msource[5],
593  data_.msource[6],
594  data_.msource[7],
595  idote
596  );
597  }
598  }
599  /* dgb:02/04 98 */
600  memset(comment_.comment,0,sizeof(comment_.comment)); /* dgb:09/10/97 */
601  data_.overmonth = -1; /* dgb:01/18/99 */
602  data_.overyear = -1; /* dgb:01/18/99 */
603  data_.overcentury = -1; /* dgb:01/18/99 */
604 
605  if( iend_ == 1 )
606  goto L_9000;
607 
608  /* Clear Past the Next Slash */
609 
610  if( nflag == 0 )
611  goto L_120;
612 L_110:
613  nextch( &xchar_.ichar, status );
614  if( *status == 1 )
615  {
616  *status = 0;
617  goto L_9000;
618  }
619  else if( *status == 2 )
620  {
621  *status = 0;
622  goto L_9010;
623  }
624 L_120:
625  if( xchar_.ichar == codes_.iblnk )
626  goto L_110;
627 
628  if( xchar_.ichar != codes_.islash )
629  goto L_9120;
630 
631  nextch( &xchar_.ichar, status );
632  if( *status == 1 )
633  {
634  *status = 0;
635  goto L_9000;
636  }
637  else if( *status == 2 )
638  {
639  *status = 0;
640  goto L_9010;
641  }
642  goto L_30;
643 
644  /* Error Return - Stop Looking at this Format */
645 
646 L_9000:
647  *status = 1;
648  return;
649 
650  /* Error Return - Stop Looking at this File */
651 
652 L_9010:
653  *status = 2;
654  return;
655 
656 L_9020:
657  num = 19;
658  goto L_9200;
659 
660 L_9030:
661  num = 20;
662  goto L_9200;
663 
664 L_9040:
665  num = 21;
666  goto L_9200;
667 
668 L_9050:
669  format_.nerr = 1;
670  goto L_9000;
671 
672 L_9070:
673  num = 24;
674  format_.nerr = 1;
675  goto L_9200;
676 
677 L_9080:
678  num = 25;
679  format_.nerr = 1;
680  goto L_9200;
681 
682 L_9090:
683  num = 28;
684  format_.nerr = 1;
685  goto L_9200;
686 
687 L_9100:
688  num = 33;
689  format_.nerr = 1;
690  goto L_9200;
691 
692 L_9110:
693  num = 35;
694  sendflg_.nsflag = 0;
695  format_.nerr = 1;
696  goto L_9200;
697 
698 L_9120:
699  num = 31;
700  format_.nerr = 1;
701 
702 L_9200:
703  sherr( &num );
704  goto L_9000;
705 
706 }
707 
static int i
long check_24(short int *year, short int *month, short int *day, short int *hour, short int *minute, short int *second)
Definition: check_24.c:13
void irang(short int *i, short int *min_, short int *max_, short int *status)
Definition: irang.c:33
printf("fbuf is %s\n", fbuf)
fprintf(fp,"%d %d %d %d 1\n", iminx, iminy, maxi, maxj)
void nextch(short int *ichar, short int *status)
Definition: nextch.c:76
void shdeca(short int *irev, short int *status)
Definition: shdeca.c:73
void shdtype(short int *iflag, short int *status)
Definition: shdtype.c:72
#define MAX_SHEF_INPUT
Definition: shef.h:38
struct t_datim_ datim_
struct t_pointers_ fp_
struct t_codes_ codes_
struct t_datrel_ datrel_
struct t_data_ data_
struct s_test test_
struct t_buffer_ buffer_
struct t_format_ format_
struct t_xchar_ xchar_
struct t_comment comment_
struct t_sendflg_ sendflg_
struct t_cont_ cont_
struct t_durprob_ durprob_
void sherr(short int *ier)
Definition: sherr.c:44
void shlocl(short int *nyear, short int *nmon, short int *nday, short int *nhour, short int *nmin, short int *nsec, short int *nadjtz, short int *iadj, short int *status)
Definition: shlocl.c:77
void shpcode(short int *kodp, short int *kode, short int *icodd, short int *kodt, short int *kods, short int *kodex, float *codp, double *factor, short int *status)
Definition: shpcode.c:43
void shpos(short int *status)
Definition: shpos.c:62
void shreal(double *value, short int *iflag, short int *ndig, short int *status)
Definition: shreal.c:50
void shtadj(short int *lyear, short int *lmon, short int *lday, short int *lhour, short int *lmin, short int *lsec, short int *kadj, short int *iadj, short int *status)
Definition: shtadj.c:53
void shtdat(short int *lyear, short int *lmon, short int *lday, short int *status)
Definition: shtdat.c:30
int atest_flag
Definition: shef_structs.h:211
short int ip
Definition: shef_structs.h:109
short int ibuf[MAX_SHEF_INPUT]
Definition: shef_structs.h:109
short int iblnk
Definition: shef_structs.h:81
short int ichs
Definition: shef_structs.h:79
short int ichz
Definition: shef_structs.h:80
short int ichd
Definition: shef_structs.h:78
short int icho
Definition: shef_structs.h:79
short int ichc
Definition: shef_structs.h:78
short int islash
Definition: shef_structs.h:81
short int ichi
Definition: shef_structs.h:78
short int icha
Definition: shef_structs.h:78
short int ichp
Definition: shef_structs.h:79
short int ichw
Definition: shef_structs.h:80
short int ichf
Definition: shef_structs.h:78
char comment[MAX_COMMENT_LENGTH]
Definition: shef_structs.h:228
char out_flag[13]
Definition: shef_structs.h:75
char post_flag[13]
Definition: shef_structs.h:75
short int overcentury
Definition: shef_structs.h:187
short int kodu
Definition: shef_structs.h:181
short int lmon
Definition: shef_structs.h:177
short int kods
Definition: shef_structs.h:179
short int overyear
Definition: shef_structs.h:188
short int msource[8]
Definition: shef_structs.h:181
short int ksec
Definition: shef_structs.h:178
short int khour
Definition: shef_structs.h:178
short int lcent
Definition: shef_structs.h:177
short int kyear
Definition: shef_structs.h:178
short int icodd
Definition: shef_structs.h:178
short int kodex
Definition: shef_structs.h:179
short int nadjtz
Definition: shef_structs.h:181
float codp
Definition: shef_structs.h:180
short int lyear
Definition: shef_structs.h:177
short int lsec
Definition: shef_structs.h:177
short int kmin
Definition: shef_structs.h:178
short int lhour
Definition: shef_structs.h:177
short int itz
Definition: shef_structs.h:181
short int kday
Definition: shef_structs.h:178
short int lmin
Definition: shef_structs.h:177
short int idstn[8]
Definition: shef_structs.h:177
short int kodt
Definition: shef_structs.h:179
short int kmon
Definition: shef_structs.h:178
short int kodp
Definition: shef_structs.h:178
short int lday
Definition: shef_structs.h:177
short int overmonth
Definition: shef_structs.h:189
double value
Definition: shef_structs.h:182
short int idcodd
Definition: shef_structs.h:179
short int kode
Definition: shef_structs.h:178
short int kwal
Definition: shef_structs.h:181
short int idate[6]
Definition: shef_structs.h:100
short int msec
Definition: shef_structs.h:132
short int mmon
Definition: shef_structs.h:132
short int mhour
Definition: shef_structs.h:132
short int mcent
Definition: shef_structs.h:132
short int mmin
Definition: shef_structs.h:132
short int myear
Definition: shef_structs.h:132
short int mend
Definition: shef_structs.h:132
short int mday
Definition: shef_structs.h:132
short int kodd
Definition: shef_structs.h:97
short int kodpr
Definition: shef_structs.h:97
short int lform
Definition: shef_structs.h:129
short int nerr
Definition: shef_structs.h:129
short int iform
Definition: shef_structs.h:129
FILE * icher
Definition: shef_structs.h:72
FILE * jchn
Definition: shef_structs.h:72
short int nsflag
Definition: shef_structs.h:115
short int ichar
Definition: shef_structs.h:112