Mapper
shbfr.c
Go to the documentation of this file.
1 /*Translated by FOR_C, v3.4.2 (-), on 06/07/94 at 16:59:02 */
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  NAME
19  SUBROUTINE SHBFR(MSOURCE,LYEAR,LMON,LDAY,LHOUR,LMIN,LSEC,
20  > KYEAR,KMON,KDAY,KHOUR,KMIN,KSEC,
21  > MYEAR,MMON,MDAY,MHOUR,MMIN,MSEC,MEND,
22  > KODP,KODE,ICODD,IDCODD,KODT,KODS,KODEX,CODP,
23  > KWAL,NADJTZ,KODU,FACTOR,IREV,KODD,KODPR)
24 
25  PURPOSE
26  Recall the .B header record
27 
28  VERSION and UPDATES
29  1.0 NOV 84 Geoffrey M. Bonnin
30  Original Version
31  1.1 JUN 89 David G. Brandon
32  Adapted to QNX NWS Hydromet
33  2.0 MAY 94 David G. Brandon
34  Also Translated to 'C' using FOR_C
35  2.1 JAN 96 DGB
36  Remove FORC I/O and replace with C I/O
37  --------------------------------------------------------------------- */
38 
39 
40 /* dgb add lcent and kcent mcent */
41 void shbfr(msource,lcent,lyear, lmon, lday, lhour, lmin, lsec,
42  kcent,kyear, kmon, kday, khour, kmin, ksec, mcent, myear, mmon, mday, mhour,
43  mmin, msec, mend, kodp, kode, icodd, idcodd, kodt, kods, kodex,
44  codp, kwal, nadjtz, kodu, factor, irev, kodd, kodpr)
45 
46 short int msource[], *lcent, *lyear, *lmon, *lday, *lhour, *lmin, *lsec,
47  *kcent, *kyear, *mcent,
48  *kmon, *kday, *khour, *kmin, *ksec, *myear, *mmon, *mday, *mhour,
49  *mmin, *msec, *mend, *kodp, *kode, *icodd, *idcodd, *kodt, *kods,
50  *kodex;
51 float *codp;
52 short int *kwal, *nadjtz, *kodu;
53 double *factor;
54 short int *irev, *kodd, *kodpr;
55 {
56  static short int i, i_, mbuf;
57  /* OFFSET Vectors w/subscript range: 1 to dimension */
58  double *const Aar = &bbuf2_.aar[0] - 1;
59  float *const Bar = &bbuf2_.bar[0] - 1;
60  short *const Msource = &msource[0] - 1;
61  /* end of OFFSET VECTORS */
62 
63 
64  /* Set max virtual buffer size - must correspond with array
65  * dimension in BBUF2 & 3 */
66  mbuf = 38;
67 
68  /* Increment record counter */
69 
70  bbuf1_.nmrec = bbuf1_.nmrec + 1;
71 
72  /* is this a virtual or a disk record */
73 
74  if( bbuf1_.nmrec > mbuf )
75  goto L_20;
76 
77  /* Retrieve record from virtual buffer */
78 
79  *factor = Aar[bbuf1_.nmrec];
80  *codp = Bar[bbuf1_.nmrec];
81  *lyear = bbuf2_.iarray[bbuf1_.nmrec - 1][0];
82  *lmon = bbuf2_.iarray[bbuf1_.nmrec - 1][1];
83  *lday = bbuf2_.iarray[bbuf1_.nmrec - 1][2];
84  *lhour = bbuf2_.iarray[bbuf1_.nmrec - 1][3];
85  *lmin = bbuf2_.iarray[bbuf1_.nmrec - 1][4];
86  *lsec = bbuf2_.iarray[bbuf1_.nmrec - 1][5];
87  *kyear = bbuf2_.iarray[bbuf1_.nmrec - 1][6];
88  *kmon = bbuf2_.iarray[bbuf1_.nmrec - 1][7];
89  *kday = bbuf2_.iarray[bbuf1_.nmrec - 1][8];
90  *khour = bbuf2_.iarray[bbuf1_.nmrec - 1][9];
91  *kmin = bbuf2_.iarray[bbuf1_.nmrec - 1][10];
92  *ksec = bbuf2_.iarray[bbuf1_.nmrec - 1][11];
93  *myear = bbuf2_.iarray[bbuf1_.nmrec - 1][12];
94  *mmon = bbuf2_.iarray[bbuf1_.nmrec - 1][13];
95  *mday = bbuf2_.iarray[bbuf1_.nmrec - 1][14];
96  *mhour = bbuf2_.iarray[bbuf1_.nmrec - 1][15];
97  *mmin = bbuf2_.iarray[bbuf1_.nmrec - 1][16];
98  *msec = bbuf2_.iarray[bbuf1_.nmrec - 1][17];
99  *mend = bbuf2_.iarray[bbuf1_.nmrec - 1][18];
100  *icodd = bbuf2_.iarray[bbuf1_.nmrec - 1][19];
101  *idcodd = bbuf2_.iarray[bbuf1_.nmrec - 1][20];
102  *nadjtz = bbuf2_.iarray[bbuf1_.nmrec - 1][21];
103  *kodu = bbuf2_.iarray[bbuf1_.nmrec - 1][22];
104  *irev = bbuf2_.iarray[bbuf1_.nmrec - 1][23];
105  *lcent = bbuf2_.iarray[bbuf1_.nmrec - 1][24];
106  *kcent = bbuf2_.iarray[bbuf1_.nmrec - 1][25];
107  *mcent = bbuf2_.iarray[bbuf1_.nmrec - 1][26];
108 
109  for( i = 1; i <= 8; i++ )
110  {
111  i_ = i - 1;
112  Msource[i] = bbuf3_.jarray[bbuf1_.nmrec - 1][i_];
113  }
114 
115  *kodp = bbuf3_.jarray[bbuf1_.nmrec - 1][8];
116  *kode = bbuf3_.jarray[bbuf1_.nmrec - 1][9];
117  *kodt = bbuf3_.jarray[bbuf1_.nmrec - 1][10];
118  *kods = bbuf3_.jarray[bbuf1_.nmrec - 1][11];
119  *kodex = bbuf3_.jarray[bbuf1_.nmrec - 1][12];
120  *kwal = bbuf3_.jarray[bbuf1_.nmrec - 1][13];
121  *kodd = bbuf3_.jarray[bbuf1_.nmrec - 1][14];
122  *kodpr = bbuf3_.jarray[bbuf1_.nmrec - 1][15];
124 
125  goto L_900;
126 
127  /* Retrieve record from disk buffer file */
128 
129 L_20: /*
130  virtural buffer changed to handle 24 items in .B line
131  the dotbtemp file no longer used and commented out
132  */
133 
134  /*
135  if( bbuf1_.nmrec == (mbuf + 1) )
136  {
137  rewind(fp_.mchn);
138  }
139 
140 
141  */
142  /* add kcent and lcent */
143  fscanf( fp_.mchn, "%& %hi %hi %hi %hi %hi %hi %hi %hi %hi %hi %hi %hi %hi %hi %hi %hi %hi %hi %hi %hi %hi %hi %hi %hi %hi %hi %hi %hi %hi %f %hi %hi %hi %lf %hi %hi %hi ",
144  (size_t)8*sizeof(short),msource, lcent, lyear, lmon, lday, lhour, lmin,
145  lsec, kcent, kyear, kmon, kday, khour, kmin, ksec, mcent, myear, mmon, mday,
146  mhour, mmin, msec, mend, kodp, kode, icodd, idcodd, kodt, kods,
147  kodex, codp, kwal, nadjtz, kodu, factor, irev, kodd, kodpr );
148 
149 
150 L_900:
151 {
152  return;
153 }
154 
155 }
156 
static int i
int mday[]
Definition: fmap_qtrly.c:519
void shbfr(msource, *lcent, *lyear, *lmon, *lday, *lhour, *lmin, *lsec, *kcent, *kyear, *kmon, *kday, *khour, *kmin, *ksec, *mcent, *myear, *mmon, *mday, *mhour, *mmin, *msec, *mend, *kodp, *kode, *icodd, *idcodd, *kodt, *kods, *kodex, float *codp, short int *kwal, short int *nadjtz, short int *kodu, double *factor, short int *irev, short int *kodd, short int *kodpr)
Definition: shbfr.c:41
struct t_bbuf3_ bbuf3_
struct t_bbuf2_ bbuf2_
struct t_pointers_ fp_
struct t_bbuf1_ bbuf1_
struct t_sendflg_ sendflg_
short int nmrec
Definition: shef_structs.h:118
short int iarray[38][27]
Definition: shef_structs.h:123
double aar[38]
Definition: shef_structs.h:121
float bar[38]
Definition: shef_structs.h:122
short int jarray[38][17]
Definition: shef_structs.h:126
FILE * mchn
Definition: shef_structs.h:72
short int nsflag
Definition: shef_structs.h:115