#include "geminc.h" #include "gemprm.h" #include "bridge.h" #include "dccmn.h" /* contains prototype for dc_wclg */ #include "decod_ut.h" #ifdef UNDERSCORE #define p3_dcod p3_dcod_ #define p3_read p3_read_ #define p3_bout p3_bout_ #endif #define DCMXLN ( 133 ) /* Max length for a character string */ #define NMSGSIZE 600 char bufrtable[DCMXLN]; typedef struct P3_header { int flight_date; /* YYYYMMDDF: YYYY is year, MM is month and DD is day based on take off time; F is the mission number of the day for a specific aircraft. */ short aircraft_id; /* 42 = N42RF, 43 = N43RF, 49 = N49RF */ short storm_no; /* xx: 00 = Research mission; 01 = Atlantic; 02 = East Pacific; 03 = Central Pacific yy: 9[1-9] if invest (i.e. ATCF ID 9[1-9]) [0-3][0-9] once the storm ID number is issued. */ short bins; /* Bins (range gates) Per Radial */ float range_delay; /* Meters (add to range calculation to get true range) */ float bin_resolution; short data_type; /* Bit 0: Reflectivity (1 = present, 0 = not present) Bit 1: Doppler (1 = present, 0 = not present) Bit 2: Spectral Width (1 = present, 0 = not present) */ short antenna_no; /* 0=NOAA parabolic antenna on P3 1=dual French-built flat plane antennas on P3 2=dual flat plane antennas on G-IV */ } P3_header_t; void p3_dcod(char *, char *, int *, int *, size_t, size_t); void p3_read(char *, int *, int *, int *, int * ); void p3_bout(int *, short (*)[], short *, float *, float *, int *, int *, int *, int *, int *, int *, float *, float *, float *, float *, float *, short *, int *, int *, int *, char *, char *, char *, size_t, size_t, size_t); int reverse_int4(int n); short reverse_int2(short n); void swp_int2(int k, short *n); float reverse_float(float n); void swp_float(int k, float *n); double reverse_double(double n);