85 |
|
day = atoi(argv[2]); |
86 |
|
if (day < 1 || day > 31) |
87 |
|
userror("bad day"); |
88 |
< |
hour = atof(argv[3]); |
89 |
< |
if (hour < 0 || hour >= 24) |
90 |
< |
userror("bad hour"); |
91 |
< |
tsolar = argv[3][0] == '+'; |
88 |
> |
cvthour(argv[3]); |
89 |
|
} |
90 |
|
for (i = 4; i < argc; i++) |
91 |
|
if (argv[i][0] == '-' || argv[i][0] == '+') |
101 |
|
break; |
102 |
|
case 'c': |
103 |
|
skytype = S_OVER; |
107 |
– |
dosun = 0; |
104 |
|
break; |
105 |
|
case 'u': |
106 |
|
skytype = S_UNIF; |
111 |
– |
dosun = 0; |
107 |
|
break; |
108 |
|
case 'i': |
109 |
|
skytype = S_INTER; |
145 |
|
|
146 |
|
computesky(); |
147 |
|
printsky(); |
148 |
+ |
|
149 |
+ |
exit(0); |
150 |
|
} |
151 |
|
|
152 |
|
|
218 |
|
/* Compute horizontal radiance */ |
219 |
|
groundbr = zenithbr*normfactor; |
220 |
|
printf("# Ground ambient level: %.1f\n", groundbr); |
221 |
< |
if (sundir[2] > 0.0 && (!u_solar || solarbr > 0.0)) { |
221 |
> |
if (!overcast && sundir[2] > 0.0 && (!u_solar || solarbr > 0.0)) { |
222 |
|
if (u_solar == -1) |
223 |
|
solarbr /= 6e-5*sundir[2]; |
224 |
|
else if (u_solar == 0) { |
322 |
|
nsc = nsc*x + nf[i]; |
323 |
|
|
324 |
|
return(nsc); |
325 |
+ |
} |
326 |
+ |
|
327 |
+ |
|
328 |
+ |
cvthour(hs) /* convert hour string */ |
329 |
+ |
char *hs; |
330 |
+ |
{ |
331 |
+ |
register char *cp = hs; |
332 |
+ |
|
333 |
+ |
while (*cp && *cp++ != ':') |
334 |
+ |
; |
335 |
+ |
if (*cp) |
336 |
+ |
hour = atoi(hs) + atoi(cp)/60.0; |
337 |
+ |
else |
338 |
+ |
hour = atof(hs); |
339 |
+ |
tsolar = *hs == '+'; |
340 |
|
} |
341 |
|
|
342 |
|
|