78 |
|
int dosun = 1; |
79 |
|
double zenithbr = 0.0; |
80 |
|
int u_zenith = 0; /* -1=irradiance, 1=radiance */ |
81 |
< |
double turbidity = 2.75; |
81 |
> |
double turbidity = 2.45; |
82 |
|
double gprefl = 0.2; |
83 |
|
/* computed values */ |
84 |
|
double sundir[3]; |
95 |
|
void printdefaults(void); |
96 |
|
void userror(char *msg); |
97 |
|
double normsc(void); |
98 |
< |
void cvthour(char *hs); |
98 |
> |
int cvthour(char *hs); |
99 |
|
void printhead(register int ac, register char **av); |
100 |
|
|
101 |
|
|
104 |
|
int argc; |
105 |
|
char *argv[]; |
106 |
|
{ |
107 |
+ |
int got_meridian = 0; |
108 |
|
int i; |
109 |
|
|
110 |
|
progname = argv[0]; |
125 |
|
day = atoi(argv[2]); |
126 |
|
if (day < 1 || day > 31) |
127 |
|
userror("bad day"); |
128 |
< |
cvthour(argv[3]); |
128 |
> |
got_meridian = cvthour(argv[3]); |
129 |
|
} |
130 |
|
for (i = 4; i < argc; i++) |
131 |
|
if (argv[i][0] == '-' || argv[i][0] == '+') |
167 |
|
s_longitude = atof(argv[++i]) * (PI/180); |
168 |
|
break; |
169 |
|
case 'm': |
170 |
+ |
if (got_meridian) { |
171 |
+ |
++i; |
172 |
+ |
break; /* time overrides */ |
173 |
+ |
} |
174 |
|
s_meridian = atof(argv[++i]) * (PI/180); |
175 |
|
break; |
176 |
|
default: |
375 |
|
} |
376 |
|
|
377 |
|
|
378 |
< |
void |
378 |
> |
int |
379 |
|
cvthour( /* convert hour string */ |
380 |
|
char *hs |
381 |
|
) |
393 |
|
} |
394 |
|
while (isdigit(*cp)) cp++; |
395 |
|
if (!*cp) |
396 |
< |
return; |
396 |
> |
return(0); |
397 |
|
if (tsolar || !isalpha(*cp)) { |
398 |
|
fprintf(stderr, "%s: bad time format: %s\n", progname, hs); |
399 |
|
exit(1); |
405 |
|
break; |
406 |
|
if (!cp[j] && !tzone[i].zname[j]) { |
407 |
|
s_meridian = tzone[i].zmer * (PI/180); |
408 |
< |
return; |
408 |
> |
return(1); |
409 |
|
} |
410 |
|
} while (tzone[i++].zname[0]); |
411 |
|
|