Mapper
shbfw.c
Go to the documentation of this file.
1 /*Translated by FOR_C, v3.4.2 (-), on 06/07/94 at 16:59:15 */
2 /*FOR_C Options SET: c=2 com=u do=r4 ftn=2ln6k op=iv s=dvn str=l sq=i */
3 #define _POSIX_SOURCE
4 #include <stdio.h>
5 #include <stdlib.h>
6 #include <ctype.h>
7 #include <dirent.h>
8 #include <unistd.h>
9 #include <math.h>
10 #include <string.h>
11 #include <fcntl.h>
12 #include <sys/stat.h>
13 #include "shef_structs_external.h"
14 
15 /*---------------------------------------------------------------------
16 
17  NAME
18  SUBROUTINE SHBFW(MSOURCE,LYEAR,LMON,LDAY,LHOUR,LMIN,LSEC,
19  > KYEAR,KMON,KDAY,KHOUR,KMIN,KSEC,
20  > MYEAR,MMON,MDAY,MHOUR,MMIN,MSEC,MEND,
21  > KODP,KODE,ICODD,IDCODD,KODT,KODS,KODEX,CODP,
22  > KWAL,NADJTZ,KODU,FACTOR,IREV,KODD,KODPR)
23 
24  PURPOSE
25  Save the .B header
26 
27  VERSION and UPDATES
28  1.0 NOV 84 Geoffrey M. Bonnin
29  Original Version
30  1.1 JUN 89 David G. Brandon
31  Adapted to QNX NWS Hydromet
32  2.0 MAY 94 David G. Brandon
33  Also Translated to 'C' using FOR_C
34  2.1 JAN 96 DGB
35  Remove FORC I/O and replace with C I/O
36  2.2 Add lcent and kcent for century.
37  --------------------------------------------------------------------- */
38 
39 
40 /* dgb cent add lcent, kcent, mcent */
41 void shbfw(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 
58  /* OFFSET Vectors w/subscript range: 1 to dimension */
59  double *const Aar = &bbuf2_.aar[0] - 1;
60  float *const Bar = &bbuf2_.bar[0] - 1;
61  short *const Msource = &msource[0] - 1;
62 
63  /* Set max virtual buffer size - must correspond with
64  * array dimensions in BBUF2 &3 */
65  mbuf = 38;
66 
67  /* Increment record counter */
68 
69  bbuf1_.nmrec = bbuf1_.nmrec + 1;
70 
71  /* Is this a virtual or a disk record */
72 
73  if( bbuf1_.nmrec > mbuf )
74  goto L_20;
75  /* Place record in virtual buffer */
76 
77  Aar[bbuf1_.nmrec] = *factor;
78  Bar[bbuf1_.nmrec] = *codp;
79  bbuf2_.iarray[bbuf1_.nmrec - 1][0] = *lyear;
80  bbuf2_.iarray[bbuf1_.nmrec - 1][1] = *lmon;
81  bbuf2_.iarray[bbuf1_.nmrec - 1][2] = *lday;
82  bbuf2_.iarray[bbuf1_.nmrec - 1][3] = *lhour;
83  bbuf2_.iarray[bbuf1_.nmrec - 1][4] = *lmin;
84  bbuf2_.iarray[bbuf1_.nmrec - 1][5] = *lsec;
85  bbuf2_.iarray[bbuf1_.nmrec - 1][6] = *kyear;
86  bbuf2_.iarray[bbuf1_.nmrec - 1][7] = *kmon;
87  bbuf2_.iarray[bbuf1_.nmrec - 1][8] = *kday;
88  bbuf2_.iarray[bbuf1_.nmrec - 1][9] = *khour;
89  bbuf2_.iarray[bbuf1_.nmrec - 1][10] = *kmin;
90  bbuf2_.iarray[bbuf1_.nmrec - 1][11] = *ksec;
91  bbuf2_.iarray[bbuf1_.nmrec - 1][12] = *myear;
92  bbuf2_.iarray[bbuf1_.nmrec - 1][13] = *mmon;
93  bbuf2_.iarray[bbuf1_.nmrec - 1][14] = *mday;
94  bbuf2_.iarray[bbuf1_.nmrec - 1][15] = *mhour;
95  bbuf2_.iarray[bbuf1_.nmrec - 1][16] = *mmin;
96  bbuf2_.iarray[bbuf1_.nmrec - 1][17] = *msec;
97  bbuf2_.iarray[bbuf1_.nmrec - 1][18] = *mend;
98  bbuf2_.iarray[bbuf1_.nmrec - 1][19] = *icodd;
99  bbuf2_.iarray[bbuf1_.nmrec - 1][20] = *idcodd;
100  bbuf2_.iarray[bbuf1_.nmrec - 1][21] = *nadjtz;
101  bbuf2_.iarray[bbuf1_.nmrec - 1][22] = *kodu;
102  bbuf2_.iarray[bbuf1_.nmrec - 1][23] = *irev;
103  bbuf2_.iarray[bbuf1_.nmrec - 1][24] = *lcent;
104  bbuf2_.iarray[bbuf1_.nmrec - 1][25] = *kcent;
105  bbuf2_.iarray[bbuf1_.nmrec - 1][26] = *mcent;
106 
107  for( i = 1; i <= 8; i++ )
108  {
109  i_ = i - 1;
110  bbuf3_.jarray[bbuf1_.nmrec - 1][i_] = Msource[i];
111  }
112 
113  bbuf3_.jarray[bbuf1_.nmrec - 1][8] = *kodp;
114  bbuf3_.jarray[bbuf1_.nmrec - 1][9] = *kode;
115  bbuf3_.jarray[bbuf1_.nmrec - 1][10] = *kodt;
116  bbuf3_.jarray[bbuf1_.nmrec - 1][11] = *kods;
117  bbuf3_.jarray[bbuf1_.nmrec - 1][12] = *kodex;
118  bbuf3_.jarray[bbuf1_.nmrec - 1][13] = *kwal;
119  bbuf3_.jarray[bbuf1_.nmrec - 1][14] = *kodd;
120  bbuf3_.jarray[bbuf1_.nmrec - 1][15] = *kodpr;
122  goto L_900;
123 
124  /* Place record in disk buffer file */
125 
126 L_20:
127 
128  /*
129  virtual buffer increased to handle 38 parameters in .B line
130  disk buffer no longer used...program will error and exit
131  if more than 38 values are detected
132  */
133 
134  fprintf(fp_.icher,"\nError:more than 38 parameters detected in .B header line");
135  error_.nerror++;
136  shefcl();
137 
138  /*
139  if( bbuf1_.nmrec == (mbuf + 1) )
140  {
141  rewind(fp_.mchn);
142  }
143 
144  fprintf( stdout, "%& %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 ",
145  (size_t)8*sizeof(short),msource, *lcent, *lyear, *lmon, *lday, *lhour,
146  *lmin, *lsec, *kcent, *kyear, *kmon, *kday, *khour, *kmin, *ksec, *mcent, *myear,
147  *mmon, *mday, *mhour, *mmin, *msec, *mend, *kodp, *kode, *icodd,
148  *idcodd, *kodt, *kods, *kodex, *codp, *kwal, *nadjtz, *kodu,
149  *factor, *irev, *kodd, *kodpr );
150 
151 */
152 L_900:
153  return;
154 
155 }
156 
static int i
int mday[]
Definition: fmap_qtrly.c:519
fprintf(fp,"%d %d %d %d 1\n", iminx, iminy, maxi, maxj)
void shbfw(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: shbfw.c:41
struct t_error_ error_
struct t_bbuf3_ bbuf3_
struct t_bbuf2_ bbuf2_
struct t_pointers_ fp_
struct t_bbuf1_ bbuf1_
struct t_sendflg_ sendflg_
void shefcl()
Definition: shefcl.c:35
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
short int nerror
Definition: shef_structs.h:103
FILE * icher
Definition: shef_structs.h:72
short int nsflag
Definition: shef_structs.h:115