]> git.mxchange.org Git - simgear.git/blob - simgear/metar/Prtdmetr.cpp
Fixes for MSVC++.
[simgear.git] / simgear / metar / Prtdmetr.cpp
1 #include "Local.h"     /* standard header file */
2 #include "Metar.h"
3 #pragma page(1)
4 #pragma subtitle("subtitle - description                       ")
5 /********************************************************************/
6 /*                                                                  */
7 /*  Title:         prtDMETR                                         */
8 /*  Organization:  W/OSO242 - GRAPHICS AND DISPLAY SECTION          */
9 /*  Date:          15 Sep 1994                                      */
10 /*  Programmer:    CARL MCCALLA                                     */
11 /*  Language:      C/370                                            */
12 /*                                                                  */
13 /*  Abstract:  prtDMETR    prints, in order of the ASOS METAR       */
14 /*             format, all non-initialized members of the structure */
15 /*             addressed by the Decoded_METAR pointer.              */
16 /*                                                                  */
17 /*  External Functions Called:                                      */
18 /*                 None.                                            */
19 /*                                                                  */
20 /*  Input:         Mptr - ptr to a decoded_METAR structure.         */
21 /*                                                                  */
22 /*  Output:        NONE                                             */
23 /*                                                                  */
24 /*  Modification History:                                           */
25 /*                 None.                                            */
26 /*                                                                  */
27 /********************************************************************/
28 #pragma page(1)
29 void prtDMETR( Decoded_METAR *Mptr )
30 {
31  
32    /***************************/
33    /* DECLARE LOCAL VARIABLES */
34    /***************************/
35  
36    int i;
37  
38    /*************************/
39    /* START BODY OF ROUTINE */
40    /*************************/
41  
42    printf("\n\n\n/*******************************************/\n");
43    printf("/*    THE DECODED METAR REPORT FOLLOWS     */\n");
44    printf("/*******************************************/\n\n");
45  
46    if( Mptr->codeName[ 0 ] != '\0' )
47       printf("REPORT CODE NAME    : %s\n",Mptr->codeName);
48  
49    if( Mptr->stnid[ 0 ] != '\0' )
50       printf("STATION ID          : %s\n",Mptr->stnid);
51  
52    if( Mptr->ob_date != MAXINT )
53       printf("OBSERVATION DAY     : %d\n",Mptr->ob_date);
54  
55    if( Mptr->ob_hour != MAXINT )
56       printf("OBSERVATION HOUR    : %d\n",Mptr->ob_hour);
57  
58    if( Mptr->ob_minute != MAXINT )
59       printf("OBSERVATION MINUTE  : %d\n",Mptr->ob_minute);
60  
61    if( Mptr->NIL_rpt )
62       printf("NIL REPORT          : TRUE\n");
63  
64    if( Mptr->AUTO )
65       printf("AUTO REPORT         : TRUE\n");
66  
67    if( Mptr->COR )
68       printf("CORRECTED REPORT    : TRUE\n");
69  
70    if( Mptr->winData.windVRB )
71       printf("WIND DIRECTION VRB  : TRUE\n");
72  
73    if( Mptr->winData.windDir != MAXINT )
74       printf("WIND DIRECTION      : %d\n",Mptr->winData.windDir);
75  
76    if( Mptr->winData.windSpeed != MAXINT )
77       printf("WIND SPEED          : %d\n",Mptr->winData.windSpeed);
78  
79    if( Mptr->winData.windGust != MAXINT )
80       printf("WIND GUST           : %d\n",Mptr->winData.windGust);
81  
82    if( Mptr->winData.windUnits[ 0 ] != '\0' )
83       printf("WIND UNITS          : %s\n",Mptr->winData.windUnits);
84  
85    if( Mptr->minWnDir != MAXINT )
86       printf("MIN WIND DIRECTION  : %d\n",Mptr->minWnDir);
87  
88    if( Mptr->maxWnDir != MAXINT )
89       printf("MAX WIND DIRECTION  : %d\n",Mptr->maxWnDir);
90  
91    if( Mptr->prevail_vsbyM != (float) MAXINT )
92       printf("PREVAIL VSBY (M)    : %f\n",Mptr->prevail_vsbyM);
93  
94    if( Mptr->prevail_vsbyKM != (float) MAXINT )
95       printf("PREVAIL VSBY (KM)   : %f\n",Mptr->prevail_vsbyKM);
96  
97    if( Mptr->prevail_vsbySM != (float) MAXINT )
98       printf("PREVAIL VSBY (SM)   : %.3f\n",Mptr->prevail_vsbySM);
99  
100    if( Mptr->charPrevailVsby[0] != '\0' )
101       printf("PREVAIL VSBY (CHAR) : %s\n",Mptr->charPrevailVsby);
102  
103    if( Mptr->vsby_Dir[ 0 ] != '\0' )
104       printf("VISIBILITY DIRECTION: %s\n",Mptr->vsby_Dir);
105  
106    if( Mptr->RVRNO )
107       printf("RVRNO               : TRUE\n");
108  
109    for ( i = 0; i < 12; i++ )
110    {
111       if( Mptr->RRVR[i].runway_designator[0] != '\0' )
112          printf("RUNWAY DESIGNATOR   : %s\n",
113                  Mptr->RRVR[i].runway_designator);
114  
115       if( Mptr->RRVR[i].visRange != MAXINT )
116          printf("R_WAY VIS RANGE (FT): %d\n",
117                  Mptr->RRVR[i].visRange);
118  
119       if( Mptr->RRVR[i].vrbl_visRange )
120          printf("VRBL VISUAL RANGE   : TRUE\n");
121  
122       if( Mptr->RRVR[i].below_min_RVR )
123          printf("BELOW MIN RVR       : TRUE\n");
124  
125       if( Mptr->RRVR[i].above_max_RVR )
126          printf("ABOVE MAX RVR       : TRUE\n");
127  
128       if( Mptr->RRVR[i].Max_visRange != MAXINT )
129          printf("MX R_WAY VISRNG (FT): %d\n",
130                  Mptr->RRVR[i].Max_visRange);
131  
132       if( Mptr->RRVR[i].Min_visRange != MAXINT )
133          printf("MN R_WAY VISRNG (FT): %d\n",
134                  Mptr->RRVR[i].Min_visRange);
135  
136    }
137  
138  
139    if( Mptr->DVR.visRange != MAXINT )
140       printf("DISPATCH VIS RANGE  : %d\n",
141               Mptr->DVR.visRange);
142  
143    if( Mptr->DVR.vrbl_visRange )
144       printf("VRBL DISPATCH VISRNG: TRUE\n");
145  
146    if( Mptr->DVR.below_min_DVR )
147       printf("BELOW MIN DVR       : TRUE\n");
148  
149    if( Mptr->DVR.above_max_DVR )
150       printf("ABOVE MAX DVR       : TRUE\n");
151  
152    if( Mptr->DVR.Max_visRange != MAXINT )
153       printf("MX DSPAT VISRNG (FT): %d\n",
154               Mptr->DVR.Max_visRange);
155  
156    if( Mptr->DVR.Min_visRange != MAXINT )
157       printf("MN DSPAT VISRNG (FT): %d\n",
158               Mptr->DVR.Min_visRange);
159  
160  
161    i = 0;
162    while ( Mptr->WxObstruct[i][0] != '\0' && i < MAXWXSYMBOLS )
163    {
164       printf("WX/OBSTRUCT VISION  : %s\n",
165          Mptr->WxObstruct[i] );
166       i++;
167    }
168  
169    if( Mptr->PartialObscurationAmt[0][0] != '\0' )
170       printf("OBSCURATION AMOUNT  : %s\n",
171             &(Mptr->PartialObscurationAmt[0][0]));
172  
173    if( Mptr->PartialObscurationPhenom[0][0] != '\0' )
174       printf("OBSCURATION PHENOM  : %s\n",
175             &(Mptr->PartialObscurationPhenom[0][0]));
176  
177  
178    if( Mptr->PartialObscurationAmt[1][0] != '\0' )
179       printf("OBSCURATION AMOUNT  : %s\n",
180             &(Mptr->PartialObscurationAmt[1][0]));
181  
182    if( Mptr->PartialObscurationPhenom[1][0] != '\0' )
183       printf("OBSCURATION PHENOM  : %s\n",
184             &(Mptr->PartialObscurationPhenom[1][0]));
185  
186    i = 0;
187    while ( Mptr->cldTypHgt[ i ].cloud_type[0] != '\0' &&
188                      i < 6 )
189    {
190       if( Mptr->cldTypHgt[ i ].cloud_type[0] != '\0' )
191          printf("CLOUD COVER         : %s\n",
192             Mptr->cldTypHgt[ i ].cloud_type);
193  
194       if( Mptr->cldTypHgt[ i ].cloud_hgt_char[0] != '\0' )
195          printf("CLOUD HGT (CHARAC.) : %s\n",
196             Mptr->cldTypHgt[ i ].cloud_hgt_char);
197  
198       if( Mptr->cldTypHgt[ i ].cloud_hgt_meters != MAXINT)
199          printf("CLOUD HGT (METERS)  : %d\n",
200             Mptr->cldTypHgt[ i ].cloud_hgt_meters);
201  
202       if( Mptr->cldTypHgt[ i ].other_cld_phenom[0] != '\0' )
203          printf("OTHER CLOUD PHENOM  : %s\n",
204             Mptr->cldTypHgt[ i ].other_cld_phenom);
205  
206       i++;
207  
208    }
209  
210    if( Mptr->temp != MAXINT )
211       printf("TEMP. (CELSIUS)     : %d\n", Mptr->temp);
212  
213    if( Mptr->dew_pt_temp != MAXINT )
214       printf("D.P. TEMP. (CELSIUS): %d\n", Mptr->dew_pt_temp);
215  
216    if( Mptr->A_altstng )
217       printf("ALTIMETER (INCHES)  : %.2f\n",
218          Mptr->inches_altstng );
219  
220    if( Mptr->Q_altstng )
221       printf("ALTIMETER (PASCALS) : %d\n",
222          Mptr->hectoPasc_altstng );
223  
224    if( Mptr->TornadicType[0] != '\0' )
225       printf("TORNADIC ACTVTY TYPE: %s\n",
226          Mptr->TornadicType );
227  
228    if( Mptr->BTornadicHour != MAXINT )
229       printf("TORN. ACTVTY BEGHOUR: %d\n",
230          Mptr->BTornadicHour );
231  
232    if( Mptr->BTornadicMinute != MAXINT )
233       printf("TORN. ACTVTY BEGMIN : %d\n",
234          Mptr->BTornadicMinute );
235  
236    if( Mptr->ETornadicHour != MAXINT )
237       printf("TORN. ACTVTY ENDHOUR: %d\n",
238          Mptr->ETornadicHour );
239  
240    if( Mptr->ETornadicMinute != MAXINT )
241       printf("TORN. ACTVTY ENDMIN : %d\n",
242          Mptr->ETornadicMinute );
243  
244    if( Mptr->TornadicDistance != MAXINT )
245       printf("TORN. DIST. FROM STN: %d\n",
246          Mptr->TornadicDistance );
247  
248    if( Mptr->TornadicLOC[0] != '\0' )
249       printf("TORNADIC LOCATION   : %s\n",
250          Mptr->TornadicLOC );
251  
252    if( Mptr->TornadicDIR[0] != '\0' )
253       printf("TORNAD. DIR FROM STN: %s\n",
254          Mptr->TornadicDIR );
255  
256    if( Mptr->TornadicMovDir[0] != '\0' )
257       printf("TORNADO DIR OF MOVM.: %s\n",
258          Mptr->TornadicMovDir );
259  
260  
261    if( Mptr->autoIndicator[0] != '\0' )
262          printf("AUTO INDICATOR      : %s\n",
263                           Mptr->autoIndicator);
264  
265    if( Mptr->PKWND_dir !=  MAXINT )
266       printf("PEAK WIND DIRECTION : %d\n",Mptr->PKWND_dir);
267    if( Mptr->PKWND_speed !=  MAXINT )
268       printf("PEAK WIND SPEED     : %d\n",Mptr->PKWND_speed);
269    if( Mptr->PKWND_hour !=  MAXINT )
270       printf("PEAK WIND HOUR      : %d\n",Mptr->PKWND_hour);
271    if( Mptr->PKWND_minute !=  MAXINT )
272       printf("PEAK WIND MINUTE    : %d\n",Mptr->PKWND_minute);
273  
274    if( Mptr->WshfTime_hour != MAXINT )
275       printf("HOUR OF WIND SHIFT  : %d\n",Mptr->WshfTime_hour);
276    if( Mptr->WshfTime_minute != MAXINT )
277       printf("MINUTE OF WIND SHIFT: %d\n",Mptr->WshfTime_minute);
278    if( Mptr->Wshft_FROPA != FALSE )
279       printf("FROPA ASSOC. W/WSHFT: TRUE\n");
280  
281    if( Mptr->TWR_VSBY != (float) MAXINT )
282       printf("TOWER VISIBILITY    : %.2f\n",Mptr->TWR_VSBY);
283    if( Mptr->SFC_VSBY != (float) MAXINT )
284       printf("SURFACE VISIBILITY  : %.2f\n",Mptr->SFC_VSBY);
285  
286    if( Mptr->minVsby != (float) MAXINT )
287       printf("MIN VRBL_VIS (SM)   : %.4f\n",Mptr->minVsby);
288    if( Mptr->maxVsby != (float) MAXINT )
289       printf("MAX VRBL_VIS (SM)   : %.4f\n",Mptr->maxVsby);
290  
291    if( Mptr->VSBY_2ndSite != (float) MAXINT )
292       printf("VSBY_2ndSite (SM)   : %.4f\n",Mptr->VSBY_2ndSite);
293    if( Mptr->VSBY_2ndSite_LOC[0] != '\0' )
294       printf("VSBY_2ndSite LOC.   : %s\n",
295                    Mptr->VSBY_2ndSite_LOC);
296  
297  
298    if( Mptr->OCNL_LTG )
299       printf("OCCASSIONAL LTG     : TRUE\n");
300  
301    if( Mptr->FRQ_LTG )
302       printf("FREQUENT LIGHTNING  : TRUE\n");
303  
304    if( Mptr->CNS_LTG )
305       printf("CONTINUOUS LTG      : TRUE\n");
306  
307    if( Mptr->CG_LTG )
308       printf("CLOUD-GROUND LTG    : TRUE\n");
309  
310    if( Mptr->IC_LTG )
311       printf("IN-CLOUD LIGHTNING  : TRUE\n");
312  
313    if( Mptr->CC_LTG )
314       printf("CLD-CLD LIGHTNING   : TRUE\n");
315  
316    if( Mptr->CA_LTG )
317       printf("CLOUD-AIR LIGHTNING : TRUE\n");
318  
319    if( Mptr->AP_LTG )
320       printf("LIGHTNING AT AIRPORT: TRUE\n");
321  
322    if( Mptr->OVHD_LTG )
323       printf("LIGHTNING OVERHEAD  : TRUE\n");
324  
325    if( Mptr->DSNT_LTG )
326       printf("DISTANT LIGHTNING   : TRUE\n");
327  
328    if( Mptr->LightningVCTS )
329       printf("L'NING W/I 5-10(ALP): TRUE\n");
330  
331    if( Mptr->LightningTS )
332       printf("L'NING W/I 5 (ALP)  : TRUE\n");
333  
334    if( Mptr->VcyStn_LTG )
335       printf("VCY STN LIGHTNING   : TRUE\n");
336  
337    if( Mptr->LTG_DIR[0] != '\0' )
338       printf("DIREC. OF LIGHTNING : %s\n", Mptr->LTG_DIR);
339  
340  
341  
342    i = 0;
343    while( i < 3 && Mptr->ReWx[ i ].Recent_weather[0] != '\0' )
344    {
345       printf("RECENT WEATHER      : %s",
346                   Mptr->ReWx[i].Recent_weather);
347  
348       if( Mptr->ReWx[i].Bhh != MAXINT )
349          printf(" BEG_hh = %d",Mptr->ReWx[i].Bhh);
350       if( Mptr->ReWx[i].Bmm != MAXINT )
351          printf(" BEG_mm = %d",Mptr->ReWx[i].Bmm);
352  
353       if( Mptr->ReWx[i].Ehh != MAXINT )
354          printf(" END_hh = %d",Mptr->ReWx[i].Ehh);
355       if( Mptr->ReWx[i].Emm != MAXINT )
356          printf(" END_mm = %d",Mptr->ReWx[i].Emm);
357  
358       printf("\n");
359  
360       i++;
361    }
362  
363    if( Mptr->minCeiling != MAXINT )
364       printf("MIN VRBL_CIG (FT)   : %d\n",Mptr->minCeiling);
365    if( Mptr->maxCeiling != MAXINT )
366       printf("MAX VRBL_CIG (FT))  : %d\n",Mptr->maxCeiling);
367  
368    if( Mptr->CIG_2ndSite_Meters != MAXINT )
369       printf("CIG2ndSite (FT)     : %d\n",Mptr->CIG_2ndSite_Meters);
370    if( Mptr->CIG_2ndSite_LOC[0] != '\0' )
371       printf("CIG @ 2nd Site LOC. : %s\n",Mptr->CIG_2ndSite_LOC);
372  
373    if( Mptr->PRESFR )
374       printf("PRESFR              : TRUE\n");
375    if( Mptr->PRESRR )
376       printf("PRESRR              : TRUE\n");
377  
378    if( Mptr->SLPNO )
379       printf("SLPNO               : TRUE\n");
380  
381    if( Mptr->SLP != (float) MAXINT )
382       printf("SLP (hPa)           : %.1f\n", Mptr->SLP);
383  
384    if( Mptr->SectorVsby != (float) MAXINT )
385       printf("SECTOR VSBY (MILES) : %.2f\n", Mptr->SectorVsby );
386  
387    if( Mptr->SectorVsby_Dir[ 0 ] != '\0' )
388       printf("SECTOR VSBY OCTANT  : %s\n", Mptr->SectorVsby_Dir );
389  
390    if( Mptr->TS_LOC[ 0 ] != '\0' )
391       printf("THUNDERSTORM LOCAT. : %s\n", Mptr->TS_LOC );
392  
393    if( Mptr->TS_MOVMNT[ 0 ] != '\0' )
394       printf("THUNDERSTORM MOVMNT.: %s\n", Mptr->TS_MOVMNT);
395  
396    if( Mptr->GR )
397       printf("GR (HAILSTONES)     : TRUE\n");
398  
399    if( Mptr->GR_Size != (float) MAXINT )
400       printf("HLSTO SIZE (INCHES) : %.3f\n",Mptr->GR_Size);
401  
402    if( Mptr->VIRGA )
403       printf("VIRGA               : TRUE\n");
404  
405    if( Mptr->VIRGA_DIR[0] != '\0' )
406       printf("DIR OF VIRGA FRM STN: %s\n", Mptr->VIRGA_DIR);
407  
408    for( i = 0; i < 6; i++ ) {
409       if( Mptr->SfcObscuration[i][0] != '\0' )
410          printf("SfcObscuration      : %s\n",
411                    &(Mptr->SfcObscuration[i][0]) );
412    }
413  
414    if( Mptr->Num8thsSkyObscured != MAXINT )
415       printf("8ths of SkyObscured : %d\n",Mptr->Num8thsSkyObscured);
416  
417    if( Mptr->CIGNO )
418       printf("CIGNO               : TRUE\n");
419  
420    if( Mptr->Ceiling != MAXINT )
421       printf("Ceiling (ft)        : %d\n",Mptr->Ceiling);
422  
423    if( Mptr->Estimated_Ceiling != MAXINT )
424       printf("Estimated CIG (ft)  : %d\n",Mptr->Estimated_Ceiling);
425  
426    if( Mptr->VrbSkyBelow[0] != '\0' )
427       printf("VRB SKY COND BELOW  : %s\n",Mptr->VrbSkyBelow);
428  
429    if( Mptr->VrbSkyAbove[0] != '\0' )
430       printf("VRB SKY COND ABOVE  : %s\n",Mptr->VrbSkyAbove);
431  
432    if( Mptr->VrbSkyLayerHgt != MAXINT )
433       printf("VRBSKY COND HGT (FT): %d\n",Mptr->VrbSkyLayerHgt);
434  
435    if( Mptr->ObscurAloftHgt != MAXINT )
436       printf("Hgt Obscur Aloft(ft): %d\n",Mptr->ObscurAloftHgt);
437  
438    if( Mptr->ObscurAloft[0] != '\0' )
439       printf("Obscur Phenom Aloft : %s\n",Mptr->ObscurAloft);
440  
441    if( Mptr->ObscurAloftSkyCond[0] != '\0' )
442       printf("Obscur ALOFT SKYCOND: %s\n",Mptr->ObscurAloftSkyCond);
443  
444  
445    if( Mptr->NOSPECI )
446       printf("NOSPECI             : TRUE\n");
447  
448    if( Mptr->LAST )
449       printf("LAST                : TRUE\n");
450  
451    if( Mptr->synoptic_cloud_type[ 0 ] != '\0' )
452       printf("SYNOPTIC CLOUD GROUP: %s\n",Mptr->synoptic_cloud_type);
453  
454    if( Mptr->CloudLow != '\0' )
455       printf("LOW CLOUD CODE      : %c\n",Mptr->CloudLow);
456  
457    if( Mptr->CloudMedium != '\0' )
458       printf("MEDIUM CLOUD CODE   : %c\n",Mptr->CloudMedium);
459  
460    if( Mptr->CloudHigh != '\0' )
461       printf("HIGH CLOUD CODE     : %c\n",Mptr->CloudHigh);
462  
463    if( Mptr->SNINCR != MAXINT )
464       printf("SNINCR (INCHES)     : %d\n",Mptr->SNINCR);
465  
466    if( Mptr->SNINCR_TotalDepth != MAXINT )
467       printf("SNINCR(TOT. INCHES) : %d\n",Mptr->SNINCR_TotalDepth);
468  
469    if( Mptr->snow_depth_group[ 0 ] != '\0' )
470       printf("SNOW DEPTH GROUP    : %s\n",Mptr->snow_depth_group);
471  
472    if( Mptr->snow_depth != MAXINT )
473       printf("SNOW DEPTH (INCHES) : %d\n",Mptr->snow_depth);
474  
475    if( Mptr->WaterEquivSnow != (float) MAXINT )
476       printf("H2O EquivSno(inches): %.2f\n",Mptr->WaterEquivSnow);
477  
478    if( Mptr->SunshineDur != MAXINT )
479       printf("SUNSHINE (MINUTES)  : %d\n",Mptr->SunshineDur);
480  
481    if( Mptr->SunSensorOut )
482       printf("SUN SENSOR OUT      : TRUE\n");
483  
484    if( Mptr->hourlyPrecip != (float) MAXINT )
485       printf("HRLY PRECIP (INCHES): %.2f\n",Mptr->hourlyPrecip);
486  
487    if( Mptr->precip_amt != (float) MAXINT)
488       printf("3/6HR PRCIP (INCHES): %.2f\n",
489          Mptr->precip_amt);
490  
491    if( Mptr->Indeterminant3_6HrPrecip )
492       printf("INDTRMN 3/6HR PRECIP: TRUE\n");
493  
494    if( Mptr->precip_24_amt !=  (float) MAXINT)
495       printf("24HR PRECIP (INCHES): %.2f\n",
496          Mptr->precip_24_amt);
497  
498    if( Mptr->Temp_2_tenths != (float) MAXINT )
499       printf("TMP2TENTHS (CELSIUS): %.1f\n",Mptr->Temp_2_tenths);
500  
501    if( Mptr->DP_Temp_2_tenths != (float) MAXINT )
502       printf("DPT2TENTHS (CELSIUS): %.1f\n",Mptr->DP_Temp_2_tenths);
503  
504    if( Mptr->maxtemp !=  (float) MAXINT)
505       printf("MAX TEMP (CELSIUS)  : %.1f\n",
506          Mptr->maxtemp);
507  
508    if( Mptr->mintemp !=  (float) MAXINT)
509       printf("MIN TEMP (CELSIUS)  : %.1f\n",
510          Mptr->mintemp);
511  
512    if( Mptr->max24temp !=  (float) MAXINT)
513       printf("24HrMAXTMP (CELSIUS): %.1f\n",
514          Mptr->max24temp);
515  
516    if( Mptr->min24temp !=  (float) MAXINT)
517       printf("24HrMINTMP (CELSIUS): %.1f\n",
518          Mptr->min24temp);
519  
520    if( Mptr->char_prestndcy != MAXINT)
521       printf("CHAR PRESS TENDENCY : %d\n",
522          Mptr->char_prestndcy );
523  
524    if( Mptr->prestndcy != (float) MAXINT)
525       printf("PRES. TENDENCY (hPa): %.1f\n",
526          Mptr->prestndcy );
527  
528    if( Mptr->PWINO )
529       printf("PWINO               : TRUE\n");
530  
531    if( Mptr->PNO )
532       printf("PNO                 : TRUE\n");
533  
534    if( Mptr->CHINO )
535       printf("CHINO               : TRUE\n");
536  
537    if( Mptr->CHINO_LOC[0] != '\0' )
538       printf("CHINO_LOC           : %s\n",Mptr->CHINO_LOC);
539  
540    if( Mptr->VISNO )
541       printf("VISNO               : TRUE\n");
542  
543    if( Mptr->VISNO_LOC[0] != '\0' )
544       printf("VISNO_LOC           : %s\n",Mptr->VISNO_LOC);
545  
546    if( Mptr->FZRANO )
547       printf("FZRANO              : TRUE\n");
548  
549    if( Mptr->TSNO )
550       printf("TSNO                : TRUE\n");
551  
552    if( Mptr->DollarSign)
553       printf("DOLLAR $IGN INDCATR : TRUE\n");
554  
555    if( Mptr->horiz_vsby[ 0 ] != '\0' )
556       printf("HORIZ VISIBILITY    : %s\n",Mptr->horiz_vsby);
557  
558    if( Mptr->dir_min_horiz_vsby[ 0 ] != '\0' )
559       printf("DIR MIN HORIZ VSBY  : %s\n",Mptr->dir_min_horiz_vsby);
560  
561    if( Mptr->CAVOK )
562       printf("CAVOK               : TRUE\n");
563  
564  
565    if( Mptr->VertVsby != MAXINT )
566       printf("Vert. Vsby (meters) : %d\n",
567                   Mptr->VertVsby );
568  
569    if( Mptr->charVertVsby[0] != '\0' )
570       printf("Vert. Vsby (CHAR)   : %s\n",
571                   Mptr->charVertVsby );
572  
573    if( Mptr->QFE != MAXINT )
574       printf("QFE                 : %d\n", Mptr->QFE);
575  
576    if( Mptr->VOLCASH )
577       printf("VOLCANIC ASH        : TRUE\n");
578  
579    if( Mptr->min_vrbl_wind_dir != MAXINT )
580       printf("MIN VRBL WIND DIR   : %d\n",Mptr->min_vrbl_wind_dir);
581    if( Mptr->max_vrbl_wind_dir != MAXINT )
582       printf("MAX VRBL WIND DIR   : %d\n",Mptr->max_vrbl_wind_dir);
583  
584  
585    printf("\n\n\n");
586  
587  
588    return;
589  
590 }