#include #include #include #include #include #include "cdf.h" #include // ------------------ // Global Variables // ------------------ // **************** // Status handler // **************** void StatusHandler (CDFstatus status,int code) { char message[CDF_ERRTEXT_LEN+1]; if (status < CDF_WARN) { printf ("%d: ",code); printf ("An error has occurred, halting...\n"); CDFerror (status, message); printf ("%s\n", message); exit (status); } else if (status < CDF_OK) { printf ("%d: ",code); printf ("Warning, function may not have completed as expected...\n"); CDFerror (status, message); printf ("%s\n", message); } else if (status > CDF_OK) { printf ("%d: ",code); printf ("Function completed successfully, but be advised that...\n"); CDFerror (status, message); printf ("%s\n", message); } return; } int main(int argc,char **argv) { static float FreqTable[900],pwr1[900],pwr2[900]; //static short int ipwr1[700],ipwr2[700]; int i; char fn0[256],fn1[256]; //--- Variables for CDF -------------------------- CDFid id; long FreqVarNum,EpochVarNum; /* Variable Number */ long Rx1VarNum; /* Variable Number */ long Rx2VarNum; /* Variable Number */ //double EpochMin,EpochMax; long yr,mo,dy,hr,mi,se,ms; double Epoch; //float Freq,Rx1,Rx2; // Frequency,Intensity CDFstatus status; /* CDF completion status. */ //long indices[1]; /* Dimension indices. */ long recNum; /* Record number. */ //------------------------------------------------ //long numDims = 1; // Number of dimensions, rVariables. long dimSizes[1] = {900}; // Dimension sizes, rVariables. long dimVarys[1]; // Dimension variances. //long VarNum2; long AttrNum; static char buf[2048],sbuf[256]; static long dimIndices[1],dimCounts[1],dimInterval[1]; double dval; //short int fval; float fval; float ffval; //int ival; //int ms1,ms2; FILE *fp; static char mnm[12][8]={"Jan","Feb","Mar","Apr","May","Jun", "Jul","Aug","Sep","Oct","Nov","Dec"}; //--- FreqTable ----------------------------------- for (i=0;i<900;i++) { FreqTable[i]=(452+i)/4096.0*125e6; // [Hz] } //============================================= yr=(argv[1][ 0]-'0')*1000+(argv[1][ 1]-'0')*100 +(argv[1][ 2]-'0')*10 +(argv[1][ 3]-'0'); mo=(argv[1][ 4]-'0')*10 +(argv[1][ 5]-'0'); dy=(argv[1][ 6]-'0')*10 +(argv[1][ 7]-'0'); hr=(argv[2][ 0]-'0')*10 +(argv[2][ 1]-'0'); mi=se=0; sprintf(fn0,"it_h1_hf_%04ld%02ld%02ld%02ld_v01",yr,mo,dy,hr); sprintf(fn1,"%s.cdf",fn0); remove(fn1); // If there is CDF file with the same name //fprintf(stderr,"aaa\n"); status = CDFcreateCDF (fn0, &id); if (status != CDF_OK) StatusHandler (status,1); status = CDFcreatezVar(id, "Epoch", // Variable name CDF_EPOCH, // Data type 1L, // Number of elements 0L, // Dimensionality dimSizes, // Dimension sizes (dim=0,ignored) VARY, // Record variance dimVarys, // Dimension variance (dim=0,ignored) &EpochVarNum); if (status != CDF_OK) StatusHandler (status,101); dimVarys[0] = VARY; dimSizes[0] = 900; status = CDFcreatezVar(id, "Frequency", // Variable name CDF_REAL4, // Data type 1L, // Number of elements 1L, // Dimensionality dimSizes, // Dimension sizes NOVARY, // Record variance dimVarys, // Dimension variance &FreqVarNum); if (status != CDF_OK) StatusHandler (status,104); dimVarys[0] = VARY; dimSizes[0] = 900; status = CDFcreatezVar(id, "RH", // Variable name CDF_REAL4, // Data type 1L, // Number of elements 1L, // Dimensionality dimSizes, // Dimension VARY, // Record variance dimVarys, // Dimension variance &Rx1VarNum); if (status != CDF_OK) StatusHandler (status,105); dimVarys[0] = VARY; dimSizes[0] = 900; status = CDFcreatezVar(id, "LH", // Variable name CDF_REAL4, // Data type 1L, // Number of elements 1L, // Dimensionality dimSizes, // Dimension VARY, // Record variance dimVarys, // Dimension variance &Rx2VarNum); if (status != CDF_OK) StatusHandler (status,106); status = CDFcreateAttr(id, "Project", GLOBAL_SCOPE, &AttrNum); if (status != CDF_OK) StatusHandler (status,200); status = CDFcreateAttr(id, "Source_name", GLOBAL_SCOPE, &AttrNum); if (status != CDF_OK) StatusHandler (status,201); status = CDFcreateAttr(id, "Discipline", GLOBAL_SCOPE, &AttrNum); if (status != CDF_OK) StatusHandler (status,202); status = CDFcreateAttr(id, "Data_type", GLOBAL_SCOPE, &AttrNum); if (status != CDF_OK) StatusHandler (status,203); status = CDFcreateAttr(id, "Descriptor", GLOBAL_SCOPE, &AttrNum); if (status != CDF_OK) StatusHandler (status,204); status = CDFcreateAttr(id, "Data_version", GLOBAL_SCOPE, &AttrNum); if (status != CDF_OK) StatusHandler (status,205); status = CDFcreateAttr(id, "Logical_file_id", GLOBAL_SCOPE, &AttrNum); if (status != CDF_OK) StatusHandler (status,206); status = CDFcreateAttr(id, "PI_name", GLOBAL_SCOPE, &AttrNum); if (status != CDF_OK) StatusHandler (status,207); status = CDFcreateAttr(id, "PI_affiliation", GLOBAL_SCOPE, &AttrNum); if (status != CDF_OK) StatusHandler (status,208); status = CDFcreateAttr(id, "TEXT", GLOBAL_SCOPE, &AttrNum); if (status != CDF_OK) StatusHandler (status,209); status = CDFcreateAttr(id, "Instrument_type", GLOBAL_SCOPE, &AttrNum); if (status != CDF_OK) StatusHandler (status,210); status = CDFcreateAttr(id, "Mission_group", GLOBAL_SCOPE, &AttrNum); if (status != CDF_OK) StatusHandler (status,211); status = CDFcreateAttr(id, "Logical_source", GLOBAL_SCOPE, &AttrNum); if (status != CDF_OK) StatusHandler (status,212); status = CDFcreateAttr(id, "Logical_source_description", GLOBAL_SCOPE, &AttrNum); if (status != CDF_OK) StatusHandler (status,213); // status = CDFcreateAttr(id, "Acknowledgement", GLOBAL_SCOPE, &AttrNum); if (status != CDF_OK) StatusHandler (status,214); status = CDFcreateAttr(id, "ADID_ref", GLOBAL_SCOPE, &AttrNum); if (status != CDF_OK) StatusHandler (status,215); status = CDFcreateAttr(id, "Generated_by", GLOBAL_SCOPE, &AttrNum); if (status != CDF_OK) StatusHandler (status,216); status = CDFcreateAttr(id, "Generation_date", GLOBAL_SCOPE, &AttrNum); if (status != CDF_OK) StatusHandler (status,217); status = CDFcreateAttr(id, "MODS", GLOBAL_SCOPE, &AttrNum); if (status != CDF_OK) StatusHandler (status,218); status = CDFcreateAttr(id, "Rules_of_use", GLOBAL_SCOPE, &AttrNum); if (status != CDF_OK) StatusHandler (status,219); status = CDFcreateAttr(id, "Time_resolution", GLOBAL_SCOPE, &AttrNum); if (status != CDF_OK) StatusHandler (status,220); status = CDFcreateAttr(id, "TITLE", GLOBAL_SCOPE, &AttrNum); if (status != CDF_OK) StatusHandler (status,221); status = CDFcreateAttr(id, "Start time", GLOBAL_SCOPE, &AttrNum); if (status != CDF_OK) StatusHandler (status,222); status = CDFcreateAttr(id, "End time", GLOBAL_SCOPE, &AttrNum); if (status != CDF_OK) StatusHandler (status,223); status = CDFcreateAttr (id, "CATDESC", VARIABLE_SCOPE, &AttrNum); if (status != CDF_OK) StatusHandler (status,300); status = CDFcreateAttr (id, "DEPEND_0", VARIABLE_SCOPE, &AttrNum); if (status != CDF_OK) StatusHandler (status,301); status = CDFcreateAttr (id, "DEPEND_1", VARIABLE_SCOPE, &AttrNum); if (status != CDF_OK) StatusHandler (status,302); status = CDFcreateAttr (id, "DISPLAY_TYPE", VARIABLE_SCOPE, &AttrNum); if (status != CDF_OK) StatusHandler (status,303); status = CDFcreateAttr (id, "FIELDNAM", VARIABLE_SCOPE, &AttrNum); if (status != CDF_OK) StatusHandler (status,304); status = CDFcreateAttr (id, "FILLVAL", VARIABLE_SCOPE, &AttrNum); if (status != CDF_OK) StatusHandler (status,305); status = CDFcreateAttr (id, "FORMAT", VARIABLE_SCOPE, &AttrNum); if (status != CDF_OK) StatusHandler (status,306); status = CDFcreateAttr (id, "LABLAXIS", VARIABLE_SCOPE, &AttrNum); if (status != CDF_OK) StatusHandler (status,307); status = CDFcreateAttr (id, "UNITS", VARIABLE_SCOPE, &AttrNum); if (status != CDF_OK) StatusHandler (status,308); status = CDFcreateAttr (id, "VALIDMIN", VARIABLE_SCOPE, &AttrNum); if (status != CDF_OK) StatusHandler (status,309); status = CDFcreateAttr (id, "VALIDMAX", VARIABLE_SCOPE, &AttrNum); if (status != CDF_OK) StatusHandler (status,310); status = CDFcreateAttr (id, "VAR_TYPE", VARIABLE_SCOPE, &AttrNum); if (status != CDF_OK) StatusHandler (status,311); status = CDFcreateAttr (id, "SCALETYP", VARIABLE_SCOPE, &AttrNum); if (status != CDF_OK) StatusHandler (status,312); status = CDFcreateAttr (id, "MONOTON", VARIABLE_SCOPE, &AttrNum); if (status != CDF_OK) StatusHandler (status,313); // status = CDFcreateAttr (id, "DICT_KEY", VARIABLE_SCOPE, &AttrNum); if (status != CDF_OK) StatusHandler (status,314); status = CDFcreateAttr (id, "VAR_NOTE", VARIABLE_SCOPE, &AttrNum); if (status != CDF_OK) StatusHandler (status,315); sprintf(buf,"ISTP>International Solar-Terrestrial Physics"); status = CDFputAttrgEntry (id, CDFgetAttrNum(id,"Project"), 0L, // Attribute entry number CDF_CHAR, strlen(buf), buf); if (status != CDF_OK) StatusHandler (status,400); sprintf(buf,"Iitate > Iitate observatory"); status = CDFputAttrgEntry (id, CDFgetAttrNum(id,"Source_name"), 1L, // Attribute entry number CDF_CHAR, strlen(buf), buf); if (status != CDF_OK) StatusHandler (status,401); sprintf(buf,"Space Physics > Magnetospheric Science"); status = CDFputAttrgEntry (id, CDFgetAttrNum(id,"Discipline"), 2L, // Attribute entry number CDF_CHAR, strlen(buf), buf); if (status != CDF_OK) StatusHandler (status,402); sprintf(buf,"H1 > High Resolution data"); status = CDFputAttrgEntry (id, CDFgetAttrNum(id,"Data_type"), 3L, // Attribute entry number CDF_CHAR, strlen(buf), buf); if (status != CDF_OK) StatusHandler (status,403); sprintf(buf,"WBS > Wideband Spectrometer"); status = CDFputAttrgEntry (id, CDFgetAttrNum(id,"Descriptor"), 4L, // Attribute entry number CDF_CHAR, strlen(buf), buf); if (status != CDF_OK) StatusHandler (status,404); sprintf(buf,"1"); status = CDFputAttrgEntry (id, CDFgetAttrNum(id,"Data_version"), 5L, // Attribute entry number CDF_CHAR, strlen(buf), buf); if (status != CDF_OK) StatusHandler (status,405); sprintf(buf,"%s",fn0); status = CDFputAttrgEntry (id, CDFgetAttrNum(id,"Logical_file_id"), 6L, // Attribute entry number CDF_CHAR, strlen(buf), buf); if (status != CDF_OK) StatusHandler (status,406); sprintf(buf,"A. Kumamoto"); status = CDFputAttrgEntry (id, CDFgetAttrNum(id,"PI_name"), 7L, // Attribute entry number CDF_CHAR, strlen(buf), buf); if (status != CDF_OK) StatusHandler (status,407); sprintf(buf,"Tohoku University"); status = CDFputAttrgEntry (id, CDFgetAttrNum(id,"PI_affiliation"), 8L, // Attribute entry number CDF_CHAR, strlen(buf), buf); if (status != CDF_OK) StatusHandler (status,408); sprintf(buf," "); // References status = CDFputAttrgEntry (id, CDFgetAttrNum(id,"TEXT"), 9L, // Attribute entry number CDF_CHAR, strlen(buf), buf); if (status != CDF_OK) StatusHandler (status,409); sprintf(buf,"Ground based Radio Telescope"); status = CDFputAttrgEntry (id, CDFgetAttrNum(id,"Instrument_type"), 10L, // Attribute entry number CDF_CHAR, strlen(buf), buf); if (status != CDF_OK) StatusHandler (status,410); sprintf(buf,"PPARC, Tohoku Univ."); status = CDFputAttrgEntry (id, CDFgetAttrNum(id,"Mission_group"), 11L, // Attribute entry number CDF_CHAR, strlen(buf), buf); if (status != CDF_OK) StatusHandler (status,411); sprintf(buf,"it_h1_hf"); status = CDFputAttrgEntry (id, CDFgetAttrNum(id,"Logical_source"), 12L, // Attribute entry number CDF_CHAR, strlen(buf), buf); if (status != CDF_OK) StatusHandler (status,412); sprintf(buf,"Spectrogram from Iitate High Frequency Radio Antenna"); status = CDFputAttrgEntry(id,CDFgetAttrNum(id,"Logical_source_description"), 13L, // Attribute entry number CDF_CHAR, strlen(buf), buf); if (status != CDF_OK) StatusHandler (status,413); // sprintf(buf,"Iitate HF data were provided by PPARC, Tohoku Univ."); status = CDFputAttrgEntry(id,CDFgetAttrNum(id,"Acknowledgement"), 14L, // Attribute entry number CDF_CHAR, strlen(buf), buf); if (status != CDF_OK) StatusHandler (status,414); sprintf(buf,"-"); status = CDFputAttrgEntry(id,CDFgetAttrNum(id,"ADID_ref"), 15L, // Attribute entry number CDF_CHAR, strlen(buf), buf); if (status != CDF_OK) StatusHandler (status,415); sprintf(buf,"Tohoku University"); status = CDFputAttrgEntry(id,CDFgetAttrNum(id,"Generated_by"), 16L, // Attribute entry number CDF_CHAR, strlen(buf), buf); if (status != CDF_OK) StatusHandler (status,416); fp=popen("/bin/date '+%Y%m%d'","r"); fgets(sbuf,255,fp); pclose(fp); sscanf(sbuf,"%s",buf); status = CDFputAttrgEntry(id,CDFgetAttrNum(id,"Generation_date"), 17L, // Attribute entry number CDF_CHAR, strlen(buf), buf); if (status != CDF_OK) StatusHandler (status,417); sprintf(buf," "); status = CDFputAttrgEntry(id,CDFgetAttrNum(id,"MODS"), 18L, // Attribute entry number CDF_CHAR, strlen(buf), buf); if (status != CDF_OK) StatusHandler (status,418); sprintf(buf," In order to confirm the reliability of the data, you are requested to contact the Iitate HF data manager before using the Iitate HF data in oral/poster presentations. In the publishment, You should contact to the Iitate HF data manager before the submission for the confirmation of the principle of authorship/acknowledgement. You are also requested to send reprints to Iitate HF Data manager. Iitate HF Data Manager: Dr. Atsushi Kumamoto, Tohoku University, Aoba, Aramaki, Aoba-ku, Sendai, 980-8578, Japan. E-mail: kumamoto@stpp.gp.tohoku.ac.jp. FAX: +81-22-795-6517."); status = CDFputAttrgEntry(id,CDFgetAttrNum(id,"Rules_of_use"), 19L, // Attribute entry number CDF_CHAR, strlen(buf), buf); if (status != CDF_OK) StatusHandler (status,419); sprintf(buf,"1s"); status = CDFputAttrgEntry(id,CDFgetAttrNum(id,"Time_resolution"), 20L, // Attribute entry number CDF_CHAR, strlen(buf), buf); if (status != CDF_OK) StatusHandler (status,420); sprintf(buf,"Iitate HF data"); status = CDFputAttrgEntry(id,CDFgetAttrNum(id,"TITLE"), 21L, // Attribute entry number CDF_CHAR, strlen(buf), buf); if (status != CDF_OK) StatusHandler (status,421); sprintf(buf,"%02ld-%s-%04ld %02ld:00:00.000",dy,mnm[mo-1],yr,hr); status = CDFputAttrgEntry(id,CDFgetAttrNum(id,"Start time"), 22L, // Attribute entry number CDF_CHAR, strlen(buf), buf); if (status != CDF_OK) StatusHandler (status,422); sprintf(buf,"%02ld-%s-%04ld %02ld:59:59.999",dy,mnm[mo-1],yr,hr); status = CDFputAttrgEntry(id,CDFgetAttrNum(id,"End time"), 23L, // Attribute entry number CDF_CHAR, strlen(buf), buf); if (status != CDF_OK) StatusHandler (status,423); sprintf(buf,"Time (UT)"); status = CDFputAttrzEntry (id, CDFgetAttrNum(id,"CATDESC"), CDFvarNum(id,"Epoch"), CDF_CHAR, strlen(buf),buf); if (status != CDF_OK) StatusHandler (status,500); sprintf(buf," "); status = CDFputAttrzEntry (id, CDFgetAttrNum(id,"DISPLAY_TYPE"), CDFvarNum(id,"Epoch"), CDF_CHAR, strlen(buf),buf); if (status != CDF_OK) StatusHandler (status,501); sprintf(buf,"Epoch"); status = CDFputAttrzEntry (id, CDFgetAttrNum(id,"FIELDNAM"), CDFvarNum(id,"Epoch"), CDF_CHAR, strlen(buf),buf); if (status != CDF_OK) StatusHandler (status,502); dval=-1e+31; status = CDFputAttrzEntry (id, CDFgetAttrNum(id,"FILLVAL"), CDFvarNum(id,"Epoch"), CDF_REAL8,1,&dval); if (status != CDF_OK) StatusHandler (status,503); sprintf(buf,"Epoch"); status = CDFputAttrzEntry (id, CDFgetAttrNum(id,"LABLAXIS"), CDFvarNum(id,"Epoch"), CDF_CHAR, strlen(buf),buf); if (status != CDF_OK) StatusHandler (status,504); sprintf(buf,"s"); status = CDFputAttrzEntry (id, CDFgetAttrNum(id,"UNITS"), CDFvarNum(id,"Epoch"), CDF_CHAR, strlen(buf),buf); if (status != CDF_OK) StatusHandler (status,505); dval=computeEPOCH(1989,1,1,0,0,0,0); status = CDFputAttrzEntry (id, CDFgetAttrNum(id,"VALIDMIN"), CDFvarNum(id,"Epoch"), CDF_REAL8,1,&dval); if (status != CDF_OK) StatusHandler (status,506); dval=computeEPOCH(2020,1,1,0,0,0,0); status = CDFputAttrzEntry (id, CDFgetAttrNum(id,"VALIDMAX"), CDFvarNum(id,"Epoch"), CDF_REAL8,1,&dval); if (status != CDF_OK) StatusHandler (status,507); sprintf(buf,"support_data"); status = CDFputAttrzEntry (id, CDFgetAttrNum(id,"VAR_TYPE"), CDFvarNum(id,"Epoch"), CDF_CHAR, strlen(buf),buf); if (status != CDF_OK) StatusHandler (status,508); sprintf(buf,"Linear"); status = CDFputAttrzEntry (id, CDFgetAttrNum(id,"SCALETYP"), CDFvarNum(id,"Epoch"), CDF_CHAR, strlen(buf),buf); if (status != CDF_OK) StatusHandler (status,509); sprintf(buf,"INCREASE"); status = CDFputAttrzEntry (id, CDFgetAttrNum(id,"MONOTON"), CDFvarNum(id,"Epoch"), CDF_CHAR, strlen(buf),buf); if (status != CDF_OK) StatusHandler (status,510); // sprintf(buf,"time>Epoch"); status = CDFputAttrzEntry (id, CDFgetAttrNum(id,"DICT_KEY"), CDFvarNum(id,"Epoch"), CDF_CHAR, strlen(buf),buf); if (status != CDF_OK) StatusHandler (status,511); sprintf(buf,"Frequency"); status = CDFputAttrzEntry (id, CDFgetAttrNum(id,"CATDESC"), CDFvarNum(id,"Frequency"), CDF_CHAR, strlen(buf),buf); if (status != CDF_OK) StatusHandler (status,600); sprintf(buf," "); status = CDFputAttrzEntry (id, CDFgetAttrNum(id,"DISPLAY_TYPE"), CDFvarNum(id,"Frequency"), CDF_CHAR, strlen(buf),buf); if (status != CDF_OK) StatusHandler (status,601); sprintf(buf,"Frequency"); status = CDFputAttrzEntry (id, CDFgetAttrNum(id,"FIELDNAM"), CDFvarNum(id,"Frequency"), CDF_CHAR, strlen(buf),buf); if (status != CDF_OK) StatusHandler (status,602); ffval=-1e+15; status = CDFputAttrzEntry (id, CDFgetAttrNum(id,"FILLVAL"), CDFvarNum(id,"Frequency"), CDF_REAL4,1,&ffval); if (status != CDF_OK) StatusHandler (status,603); sprintf(buf,"E9.3"); status = CDFputAttrzEntry (id, CDFgetAttrNum(id,"FORMAT"), CDFvarNum(id,"Frequency"), CDF_CHAR, strlen(buf),buf); if (status != CDF_OK) StatusHandler (status,604); sprintf(buf,"frequency"); status = CDFputAttrzEntry (id, CDFgetAttrNum(id,"LABLAXIS"), CDFvarNum(id,"Frequency"), CDF_CHAR, strlen(buf),buf); if (status != CDF_OK) StatusHandler (status,605); sprintf(buf,"Hz"); status = CDFputAttrzEntry (id, CDFgetAttrNum(id,"UNITS"), CDFvarNum(id,"Frequency"), CDF_CHAR, strlen(buf),buf); if (status != CDF_OK) StatusHandler (status,606); ffval=15.0e6; status = CDFputAttrzEntry (id, CDFgetAttrNum(id,"VALIDMIN"), CDFvarNum(id,"Frequency"), CDF_REAL4,1,&ffval); if (status != CDF_OK) StatusHandler (status,607); ffval=40.0e6; status = CDFputAttrzEntry (id, CDFgetAttrNum(id,"VALIDMAX"), CDFvarNum(id,"Frequency"), CDF_REAL4,1,&ffval); if (status != CDF_OK) StatusHandler (status,608); sprintf(buf,"support_data"); status = CDFputAttrzEntry (id, CDFgetAttrNum(id,"VAR_TYPE"), CDFvarNum(id,"Frequency"), CDF_CHAR, strlen(buf),buf); if (status != CDF_OK) StatusHandler (status,609); sprintf(buf,"log"); status = CDFputAttrzEntry (id, CDFgetAttrNum(id,"SCALETYP"), CDFvarNum(id,"Frequency"), CDF_CHAR, strlen(buf),buf); if (status != CDF_OK) StatusHandler (status,610); // sprintf(buf,"INCREASE"); status = CDFputAttrzEntry (id, CDFgetAttrNum(id,"MONOTON"), CDFvarNum(id,"Frequency"), CDF_CHAR, strlen(buf),buf); if (status != CDF_OK) StatusHandler (status,611); sprintf(buf,"Power Flux Density (RH)"); status = CDFputAttrzEntry (id, CDFgetAttrNum(id,"CATDESC"), CDFvarNum(id,"RH"), CDF_CHAR, strlen(buf),buf); if (status != CDF_OK) StatusHandler (status,700); sprintf(buf,"Epoch"); status = CDFputAttrzEntry (id, CDFgetAttrNum(id,"DEPEND_0"), CDFvarNum(id,"RH"), CDF_CHAR, strlen(buf),buf); if (status != CDF_OK) StatusHandler (status,701); sprintf(buf,"Frequency"); status = CDFputAttrzEntry (id, CDFgetAttrNum(id,"DEPEND_1"), CDFvarNum(id,"RH"), CDF_CHAR, strlen(buf),buf); if (status != CDF_OK) StatusHandler (status,702); sprintf(buf,"spectrogram"); status = CDFputAttrzEntry (id, CDFgetAttrNum(id,"DISPLAY_TYPE"), CDFvarNum(id,"RH"), CDF_CHAR, strlen(buf),buf); if (status != CDF_OK) StatusHandler (status,703); sprintf(buf,"RH"); status = CDFputAttrzEntry (id, CDFgetAttrNum(id,"FIELDNAM"), CDFvarNum(id,"RH"), CDF_CHAR, strlen(buf),buf); if (status != CDF_OK) StatusHandler (status,704); fval=-999; status = CDFputAttrzEntry (id, CDFgetAttrNum(id,"FILLVAL"), CDFvarNum(id,"RH"), CDF_REAL4,1,&fval); if (status != CDF_OK) StatusHandler (status,705); sprintf(buf,"F6.1f"); status = CDFputAttrzEntry (id, CDFgetAttrNum(id,"FORMAT"), CDFvarNum(id,"RH"), CDF_CHAR, strlen(buf),buf); if (status != CDF_OK) StatusHandler (status,706); sprintf(buf,"RH"); status = CDFputAttrzEntry (id, CDFgetAttrNum(id,"LABLAXIS"), CDFvarNum(id,"RH"), CDF_CHAR, strlen(buf),buf); if (status != CDF_OK) StatusHandler (status,707); sprintf(buf,"dB"); status = CDFputAttrzEntry (id, CDFgetAttrNum(id,"UNITS"), CDFvarNum(id,"RH"), CDF_CHAR, strlen(buf),buf); if (status != CDF_OK) StatusHandler (status,708); fval=40; status = CDFputAttrzEntry (id, CDFgetAttrNum(id,"VALIDMIN"), CDFvarNum(id,"RH"), CDF_REAL4,1,&fval); if (status != CDF_OK) StatusHandler (status,709); fval=100; status = CDFputAttrzEntry (id, CDFgetAttrNum(id,"VALIDMAX"), CDFvarNum(id,"RH"), CDF_REAL4,1,&fval); if (status != CDF_OK) StatusHandler (status,710); sprintf(buf,"data"); status = CDFputAttrzEntry (id, CDFgetAttrNum(id,"VAR_TYPE"), CDFvarNum(id,"RH"), CDF_CHAR, strlen(buf),buf); if (status != CDF_OK) StatusHandler (status,711); sprintf(buf,"Linear"); status = CDFputAttrzEntry (id, CDFgetAttrNum(id,"SCALETYP"), CDFvarNum(id,"RH"), CDF_CHAR, strlen(buf),buf); if (status != CDF_OK) StatusHandler (status,712); // sprintf(buf,"frequency>power_flux_density_channel"); status = CDFputAttrzEntry (id, CDFgetAttrNum(id,"DICT_KEY"), CDFvarNum(id,"RH"), CDF_CHAR, strlen(buf),buf); if (status != CDF_OK) StatusHandler (status,713); sprintf(buf,"Power Flux Density (LH)"); status = CDFputAttrzEntry (id, CDFgetAttrNum(id,"CATDESC"), CDFvarNum(id,"LH"), CDF_CHAR, strlen(buf),buf); if (status != CDF_OK) StatusHandler (status,800); sprintf(buf,"Epoch"); status = CDFputAttrzEntry (id, CDFgetAttrNum(id,"DEPEND_0"), CDFvarNum(id,"LH"), CDF_CHAR, strlen(buf),buf); if (status != CDF_OK) StatusHandler (status,801); sprintf(buf,"Frequency"); status = CDFputAttrzEntry (id, CDFgetAttrNum(id,"DEPEND_1"), CDFvarNum(id,"LH"), CDF_CHAR, strlen(buf),buf); if (status != CDF_OK) StatusHandler (status,802); sprintf(buf,"spectrogram"); status = CDFputAttrzEntry (id, CDFgetAttrNum(id,"DISPLAY_TYPE"), CDFvarNum(id,"LH"), CDF_CHAR, strlen(buf),buf); if (status != CDF_OK) StatusHandler (status,803); sprintf(buf,"LH"); status = CDFputAttrzEntry (id, CDFgetAttrNum(id,"FIELDNAM"), CDFvarNum(id,"LH"), CDF_CHAR, strlen(buf),buf); if (status != CDF_OK) StatusHandler (status,804); fval=-999; status = CDFputAttrzEntry (id, CDFgetAttrNum(id,"FILLVAL"), CDFvarNum(id,"LH"), CDF_REAL4,1,&fval); if (status != CDF_OK) StatusHandler (status,805); sprintf(buf,"F6.1"); status = CDFputAttrzEntry (id, CDFgetAttrNum(id,"FORMAT"), CDFvarNum(id,"LH"), CDF_CHAR, strlen(buf),buf); if (status != CDF_OK) StatusHandler (status,806); sprintf(buf,"LH"); status = CDFputAttrzEntry (id, CDFgetAttrNum(id,"LABLAXIS"), CDFvarNum(id,"LH"), CDF_CHAR, strlen(buf),buf); if (status != CDF_OK) StatusHandler (status,807); sprintf(buf,"dB"); status = CDFputAttrzEntry (id, CDFgetAttrNum(id,"UNITS"), CDFvarNum(id,"LH"), CDF_CHAR, strlen(buf),buf); if (status != CDF_OK) StatusHandler (status,808); fval=40; status = CDFputAttrzEntry (id, CDFgetAttrNum(id,"VALIDMIN"), CDFvarNum(id,"LH"), CDF_REAL4,1,&fval); if (status != CDF_OK) StatusHandler (status,809); fval=100; status = CDFputAttrzEntry (id, CDFgetAttrNum(id,"VALIDMAX"), CDFvarNum(id,"LH"), CDF_REAL4,1,&fval); if (status != CDF_OK) StatusHandler (status,810); sprintf(buf,"data"); status = CDFputAttrzEntry (id, CDFgetAttrNum(id,"VAR_TYPE"), CDFvarNum(id,"LH"), CDF_CHAR, strlen(buf),buf); if (status != CDF_OK) StatusHandler (status,811); sprintf(buf,"Linear"); status = CDFputAttrzEntry (id, CDFgetAttrNum(id,"SCALETYP"), CDFvarNum(id,"LH"), CDF_CHAR, strlen(buf),buf); if (status != CDF_OK) StatusHandler (status,812); // sprintf(buf,"frequency>power_flux_density_channel"); status = CDFputAttrzEntry (id, CDFgetAttrNum(id,"DICT_KEY"), CDFvarNum(id,"LH"), CDF_CHAR, strlen(buf),buf); if (status != CDF_OK) StatusHandler (status,813); recNum=0; while (1) { hr=fgetc(stdin);if (feof(stdin)) break; mi=fgetc(stdin); se=fgetc(stdin); ms=fgetc(stdin)*10; fread(pwr1,sizeof(float),900,stdin); fread(pwr2,sizeof(float),900,stdin); //for (i=0;i<700;i++) { //ipwr1[i]=pwr1[i];//if (pwr1[i]<-800) fprintf(stderr,"%d\n",ipwr1[i]); //} //for (i=0;i<700;i++) ipwr2[i]=pwr2[i]; // ----------------------------------------------------- // CDF File Write // ----------------------------------------------------- Epoch=computeEPOCH(yr,mo,dy,hr,mi,se,ms); status=CDFputzVarRecordData(id,EpochVarNum,recNum,&Epoch); if (status!=CDF_OK) StatusHandler(status,1001); if (recNum==0) { dimIndices[0] = 0; dimCounts[0] = 900; dimInterval[0] = 1; status=CDFhyperPutzVarData(id, FreqVarNum, 0L, /* record start */ 1L, /* # of records to write */ 1L, /* record interval */ dimIndices, /* dimension dimIndices */ dimCounts, /* dimension counts */ dimInterval, /* dimension interval */ FreqTable); if (status!=CDF_OK) StatusHandler(status,1003); } dimIndices[0] = 0; dimCounts[0] = 900; dimInterval[0] = 1; status=CDFhyperPutzVarData(id, Rx1VarNum, recNum, /* record start */ 1L, /* # of records to write */ 1L, /* record interval */ dimIndices, /* dimension dimIndices */ dimCounts, /* dimension counts */ dimInterval, /* dimension interval */ pwr1); if (status!=CDF_OK) StatusHandler(status,1004); dimIndices[0] = 0; dimCounts[0] = 900; dimInterval[0] = 1; status=CDFhyperPutzVarData(id, Rx2VarNum, recNum, /* record start */ 1L, /* # of records to write */ 1L, /* record interval */ dimIndices, /* dimension dimIndices */ dimCounts, /* dimension counts */ dimInterval, /* dimension interval */ pwr2); if (status!=CDF_OK) StatusHandler(status,1005); recNum++; } status = CDFcloseCDF(id); if (status!=CDF_OK) StatusHandler(status,1006); exit(0); } // ------------------- // LRS-NPW-CDF Ver.1 // ------------------- //