Mapper
conper.c
Go to the documentation of this file.
1 /*Translated by FOR_C, v3.4.5 (H), on 07/20/95 at 10:36:00 */
2 /*FOR_C Options SET: do=r4 ftn=ln6kk op=iv s=vzn str=l */
3 #include <stdio.h>
4 #include <stdlib.h>
5 #include <math.h>
6 #include <fcrt.h>
7 /* CONPER CONVERTS THE CHARACTER REPRESENTATION OF A MONTHLY PERIOD INTO
8  * WATER - MONTHS. */
9 
10 #include <string.h>
11 void /*FUNCTION*/ conper(cresp, cresp_s, im1, im2, ier)
12 char *cresp; int cresp_s;
13 long int *im1, *im2, *ier;
14 {
15  static char cmonth[12][4], cp1[4], cp2[4];
16  long int _i, _r;
17  static long int i, _l0, i_, n1, j, j_, _fst, n2, l, l_, imm, imm_;
18  void case_u();
19  static int _aini = 1;
20  if( _aini ){ /* Do 1 TIME INITIALIZATIONS! */
21  { static char* _itmp0[] = {"OCT","NOV","DEC","JAN","FEB","MAR",
22  "APR","MAY","JUN","JUL","AUG","SEP"};
23  for( i = 1, _r = 0; i <= 12; i++ )
24  {
25  f_strncpy( cmonth[i - 1], _itmp0[_r++], 3 );
26  }
27  }
28  _aini = 0;
29  }
30 
31  *ier = 1;
32 
33  /* MONTH LABELS */
34 
35  /* CONVERT ALL LOWER CASE CHARACTERS TO UPPER CASE */
36  case_u( cresp,cresp_s, ADR(_l0,7) );
37 
38  /* GET STARTING MONTH */
39  for( i = 1; i <= 3; i++ )
40  {
41  i_ = i - 1;
42  if( cresp[i - 1] != '-' && cresp[i - 1] != ' ' )
43  {
44  cp1[i - 1] = cresp[i - 1];
45  n1 = i;
46  }
47  else
48  {
49  for( j = i, _fst=1; (j <= 3) || _fst; j++, _fst=0 )
50  {
51  j_ = j - 1;
52  cp1[j - 1] = ' ';
53  }
54  goto L_200;
55  }
56  }
57 
58  /* GET ENDING MONTH */
59 L_200:
60  n2 = 0;
61  for( i = 2; i <= 4; i++ )
62  {
63  i_ = i - 1;
64  if( cresp[i - 1] == '-' )
65  {
66  for( j = i + 1, _fst=1; (j <= (i + 3)) || _fst; j++, _fst=0 )
67  {
68  j_ = j - 1;
69  if( cresp[j - 1] >= 'A' && cresp[j - 1] <= 'Z' )
70  {
71  n2 = n2 + 1;
72  cp2[n2 - 1] = cresp[j - 1];
73  }
74  else
75  {
76  for( l = n2 + 1, _fst=1; (l <= 3) || _fst; l++, _fst=0 )
77  {
78  l_ = l - 1;
79  cp2[l - 1] = ' ';
80  }
81  goto L_300;
82  }
83  }
84  }
85  }
86 
87  /* FIND A MONTH THAT MATCHES IM=-1 IF NO MATCH = ERROR
88  * *** STARTING MONTH */
89 L_300:
90  for( imm = 1; imm <= 12; imm++ )
91  {
92  imm_ = imm - 1;
93  if( f_strcmp(ntstr(cp1+0,min(n1,3)),ntstr(cmonth[imm_]+0,min(n1,3))
94  ) == 0 )
95  {
96  *im1 = imm;
97  goto L_500;
98  }
99  }
100  *ier = -1;
101  goto L_999;
102  /* *** ENDING MONTH */
103 L_500:
104  if( n2 == 0 )
105  {
106  *im2 = *im1;
107  goto L_999;
108  }
109  for( imm = 1; imm <= 12; imm++ )
110  {
111  imm_ = imm - 1;
112  if( f_strcmp(ntstr(cp2+0,min(n2,3)),ntstr(cmonth[imm_]+0,min(n2,3))
113  ) == 0 )
114  {
115  *im2 = imm;
116  goto L_999;
117  }
118  }
119  *ier = -1;
120 
121  /* MAKE SURE IM1<=IM2 */
122 L_999:
123  if( *im1 > *im2 )
124  {
125  *ier = -1;
126  }
127 
128  return;
129 } /* end of function */
130 
void case_u(char *c, int c_s, long int *n)
Definition: case_u.c:8
static int i
void conper(char *cresp, int cresp_s, long int *im1, long int *im2, long int *ier)
Definition: conper.c:11
int j
Definition: mapp2h.h:48