#include </usr/local/pgplot/cpgplot.h>
/*change </usr/local/pgplot/cpgplot.h> */ 
#include <stdio.h>
#include <stdlib.h>
#include <math.h>

#ifndef EXIT_FAILURE
#define EXIT_FAILURE 1
#endif
#ifndef EXIT_SUCCESS
#define EXIT_SUCCESS 0
#endif

void plot1();

main()
 {
     if(cpgbeg(0, "/ps", 1, 10) != 1)
     exit(EXIT_FAILURE);
     cpgask(1);
   plot1();
     cpgend();
     return EXIT_SUCCESS;
 }

void plot1()
{
 int a,i,Y,M,D,p,s1,s2,s3,s4,s5,s6,s7,s8,s9,s10,s11,s12,s13,s14,s15,s16,s17,s18,s20,s21,s22,demo,k=0,kk=0,t3[5500];
  long s19,n3[5500];
  double t0[5500],n0[5500],t1[5500],t2[5500],n1[5500],n2[5500],t4[5500],t5[5500],t6[5500];
  char fname1[50],fname2[50],fname3[50],al,buf[250],MO[6],REV[5];
  float xr[5500], yr[5500],yrr[5500],yrrr[5500],xrrr[5500];
  float xmin,xmax;
  float ymin,ymax;
  float xd,x1,y1;
  int   ihh,imm;
  
  char  string[10],string1[10],string2[10],string3[10],string4[10],string5[10],string6[10];
  FILE *fa,*fb,*fc,*fd;
  while(a<5499){t0[a]=t1[a]=t2[a]=t4[a]=t5[a]=t6[a]=n0[a]=n1[a]=n2[a]=0.0;t3[a]=n3[a]=0;a++;}
   printf("Input month ex.8102\n");
   scanf("%s",&MO);
  sprintf(fname3,"%s%s","/Data/Data/Hinotori/hinotori.",MO);
      if ((fa=fopen(fname3,"r"))==NULL){printf("AKIMASEN\n");exit(1);} printf(" ok\n");
      printf("Orbit number?\n");
      scanf("%s",&REV);
       
  while((fscanf(fa,"%d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d",
    &s1,&s2,&s3,&s4,&s5,&s6,&s7,&s8,&s9,&s10,&s11,&s12,&s13,&s14,&s16,&s15,&s17,
      &s18,&s19,&s20,&s21,&s22,&demo,&demo,&demo,&demo,&demo,&demo,&demo,&demo))!=EOF){
 if(s1==atol(REV))
  {if(k==0){ Y=s2; M=s3; D=s4;}
   if(s21!=0){   t0[k]=s5+s6/60.0;
		t1[k]=s15/100.0;
		t2[k]=(s11*60+s12)/60.0;
		t3[k]=s21;
		t4[k]=s14/100.0;
		t5[k]=s16/100.0;
		t6[k]=s17/100.0;
		k++;}
   if(s19!=0){n0[kk]=s5+s6/60.0;
		n1[kk]=s15/100.0;
		n2[kk]=(s11*60+s12)/60.0;
		n3[kk]=s19;kk++;}
  }
 if(s1>atol(REV)){break;} } 
   printf("%d %f\n",k,t0[k]);
     fclose(fa);

 if(t0[0]>n0[0]){xmin = n0[0];}
  if(t0[0]<=n0[0]){ xmin =t0[0];}
   xmax =xmin+1.4; 
     cpgsch(8.0);
 
 /* 1 */
   ymin = 3.0;
     ymax = 7.0;
       cpgenv(xmin,xmax,ymin,ymax, 0, -2);
       cpgsvp(0.2,0.8,-2.2,0.4);
       sprintf(string4,"%d %d %d Round Number %s",Y,M,D,REV);
       cpglab(" ", "(Ne)",string4 );
       for(i=0; i<kk; i++){
       yr[i] = log10(n3[i]);
       xr[i] = n0[i];}
       cpgpt(kk, xr, yr,5);
       cpgbox("BCTS",0.0,0,"BCTSNV",0.0,0);

/* 2 */
  	ymin = 800.0;
    	ymax = 4200.0;
      	cpgenv(xmin,xmax,ymin,ymax, 0, -2);
	cpgsvp(0.2,0.8,-3.8,-1.4);
	cpglab(" ", "(Te)",""  );
        for(i=0; i<k; i++) {
	yr[i]= t3[i];
        xr[i] = t0[i];}
        cpgpt(k, xr,yr,5);
	cpgbox("BCTS",0.0,0,"BCTSNV",0.0,0);
	
	/* parameters */
        ymin = 0.0;
        ymax = 10.0;
        cpgswin(xmin,xmax,ymin,ymax);
	cpgsvp(0.2,0.8,-6.0,-4.25);
        x1 = xmin - (xmax-xmin)/11.0;
        y1 = 10.0;
	cpgptxt(x1,y1,0.0,0.0,"UT");
        cpgptxt(x1,y1-1.5,0.0,0.0,"LT");
        cpgptxt(x1,y1-3.0,0.0,0.0,"LAT");
        cpgptxt(x1,y1-4.5,0.0,0.0,"MLAT");
	cpgptxt(x1,y1-6.0,0.0,0.0,"LONG");
        cpgptxt(x1,y1-7.5,0.0,0.0,"ALT");
   /*for(xd=xmin;xd<=xmax;xd=xd+0.15)*/
    for(xd=xmin;xd<=xmax;xd=xd+0.2){
	 ihh = (int)(xd);
	 imm = (int)( (xd-ihh)*60.0 );
	 x1 = (float)ihh + (float)imm/60.0 - (xmax-xmin)/100.0;
         sprintf(string,"%2d:%2d\0",ihh,imm);
         cpgptxt(x1,y1,0.0,0.0,string);
							    
     for(i=0; i<k; i++) {
      if(xd==(t0[i]) ){
     	 sprintf(string2,"%2d:%d\0",(int)(t2[i]),(int)((t2[i]-(int)(t2[i]))*60.0));
	sprintf(string3,"%2.2lf\0",t5[i]);
	sprintf(string1,"%2.2lf\0",t1[i]);
	sprintf(string5,"%3.2lf\0",t4[i]);
	sprintf(string6,"%3.2lf\0",t6[i]);
	cpgptxt(x1,y1-1.5,0.0,0.0,string2);
	cpgptxt(x1,y1-3.0,0.0,0.0,string3);
	cpgptxt(x1,y1-4.5,0.0,0.0,string1);
	cpgptxt(x1,y1-6.0,0.0,0.0,string5);
	cpgptxt(x1,y1-7.5,0.0,0.0,string6);
	break;}
								
							 
  if(xd!=(t0[i]) && (xd<=t0[i]+5.0/3600.0 && xd>=t0[i]-5.0/3600.0)){
	sprintf(string2,"%2d:%d\0",(int)(t2[i]),(int)((t2[i]-(int)(t2[i]))*60.0));
	sprintf(string3,"%2.2lf\0",t5[i]);
	sprintf(string1,"%2.2lf\0",t1[i]);
	sprintf(string5,"%3.2lf\0",t4[i]);
	sprintf(string6,"%3.2lf\0",t6[i]);
	cpgptxt(x1,y1-1.5,0.0,0.0,string2);
	cpgptxt(x1,y1-3,0.0,0.0,string3);
	cpgptxt(x1,y1-4.5,0.0,0.0,string1);
	cpgptxt(x1,y1-6.0,0.0,0.0,string5);
	cpgptxt(x1,y1-7.5,0.0,0.0,string6);
	break;}
   if(i==k-1) {	cpgptxt(x1,y1-1.5,0.0,0.0,"***");
	cpgptxt(x1,y1-3,0.0,0.0,"***");		
	cpgptxt(x1,y1-4.5,0.0,0.0,"***");
	cpgptxt(x1,y1-6.0,0.0,0.0,"***");
	cpgptxt(x1,y1-7.5,0.0,0.0,"***");}
																	}
  }
    return;}
