@@ -42,7 +42,7 @@ int f_spectral_bands_extname(ARG0) {
4242
4343 const char * shortname1 = NULL , * satellite1 = NULL , * pol1 = NULL ;
4444 double c = 299792458. ;
45- double minwave = 9e19 , maxwave = -9e19 , sumwave = 0 , wl , fq ;
45+ double minwave = 9e19 , maxwave = -9e19 , sumwave = 0.0 , wl , fq ;
4646
4747 (void ) agency ;
4848 (void ) longname ;
@@ -126,18 +126,20 @@ int f_spectral_bands_extname(ARG0) {
126126 sprintf (inv_out ,"Ins %d " ,instrument );
127127 inv_out += strlen (inv_out );
128128 }
129-
130- if (minwave * 1.01 < maxwave )
131- sprintf (inv_out ,"%d bands: %.3g to %.3g m-1 " ,nb ,minwave ,maxwave );
132- else {
133- wl = 1.e6 /value ;
134- fq = c * value /1e9 ;
135- if (wl > 0.1 && wl < 100 ) sprintf (inv_out ,"%.2f um " ,wl );
136- else if (fq > 1 && fq < 1000 ) sprintf (inv_out ,"%.2f GHz " ,fq );
137- else sprintf (inv_out ,"%.3g m-1 " ,minwave );
138129
130+ if (nb > 0 ) {
131+ sumwave /= nb ;
132+ if (minwave * 1.01 < maxwave )
133+ sprintf (inv_out ,"%d bands: %.3g to %.3g m-1 " ,nb ,minwave ,maxwave );
134+ else {
135+ wl = 1.e6 /sumwave ;
136+ fq = c * sumwave /1e9 ;
137+ if (wl > 0.1 && wl < 100 ) sprintf (inv_out ,"%.2f um " ,wl );
138+ else if (fq > 1 && fq < 1000 ) sprintf (inv_out ,"%.2f GHz " ,fq );
139+ else sprintf (inv_out ,"%.3g m-1 " ,minwave );
140+ }
141+ inv_out += strlen (inv_out );
139142 }
140- inv_out += strlen (inv_out );
141143
142144 if (multipol )
143145 strcat (inv_out ,"mult.pol." );
0 commit comments