Ejemplo n.º 1
0
int main() 
{
   int n,i,r;
   printf("Enter number and index:");
   scanf("%d",&n);
   scanf("%d",&i);
   
   printf("\n Given number");
   display(n);
   printf("\t Decimal Equivalant: %d",n);
   
   printf("\n Bit %d set to 1:",i);
   r=set_1(n,i);
   display(r);
   printf("\t Decimal Equivalant: %d",r);
   
   printf("\n Bit %d set to 0:",i);
   r=set_0(n,i);
   display(r);
   printf("\t Decimal Equivalant: %d",r);
   
   printf("\n Toggled Bit %d:",i);
   r=toggle(n,i);
   display(r);
   printf("\t Decimal Equivalant: %d",r);
   
   printf("\n Toggled Except Bit %d:",i);
   r=toggle_except(n,i);
   display(r);
   printf("\t Decimal Equivalant: %d",r);
   
   printf("\n Right Rotate:");
   r=rotate_right(n);
   display(r);
   printf("\t Decimal Equivalant: %d",r);
   
   printf("\n Left Rotate:");
   r=rotate_left(n);
   display(r);
   printf("\t Decimal Equivalant: %d",r);
   
   printf("\n Swap Nibble: ");
   r=swap(n);
   display(r);
   printf("\t Decimal Equivalant: %d",r);
   
   return 0;
}
Ejemplo n.º 2
0
void main(int argc, char **argv)
{ 
  FILE *fpmask, *fpgrd;                /* Filepointers for to files*/
  char maskfile[150];
  char grdfile[150];  /*=".grd";*/
  char outp_dir[250]; /* ="out/";*/
  char str1[12];
  char str2[12];
  int nr_of_valid_cells,nr_tstep, i,start_year,start_month;
  int present_tstep, x;
  int run_years, yy, binflag;
  int to_start, start_period, end_period;
  float prec, mult;
  float tstp[MAX_NR_OF_CELLS];   /* Not using pointer could be dangerous */

  STR_BIG *pt;
  pt = malloc(sizeof(STR_BIG));    /* allocates memory to the structure */

  if (argc<9) {        /* Must be exactly 6 arguments behind the program name */
  printf("Not correct number of commandline arguments \n");
  exit(EXIT_FAILURE); }
  strcpy(maskfile,argv[1]);
  strcpy(grdfile,argv[2]);
  strcpy(outp_dir,argv[3]);
  strcpy(str1,argv[4]); start_year=atoi(str1);
  strcpy(str1,argv[5]); start_period=atoi(str1);
  strcpy(str1, argv[6]); end_period=atoi(str1);
  strcpy(str1, argv[7]); binflag=atoi(str1); /*binary flag */
  strcpy(str1, argv[8]); mult=atof(str1); /*data multiplier*/
  printf("Commandline arguments\n");
  printf("mk_monthly ");
  printf("%s %s %s %d %d %d\n",maskfile,grdfile,outp_dir,start_year, start_period,end_period);
          
  if((fpmask = fopen(maskfile,"r"))==NULL){
    printf("Cannot open file %s \n",maskfile);exit(0);}

  if(binflag!=1) {
    if((fpgrd = fopen(grdfile,"r"))==NULL){
      printf("Cannot open file %s \n",grdfile); exit(0);}
  }
  else {
    if((fpgrd = fopen(grdfile,"rb"))==NULL){   
      printf("Cannot open file %s \n",grdfile); exit(0);}
  }

  printf("Maximum number of cells in this program is %d\n",MAX_NR_OF_CELLS);

  nr_of_valid_cells = valid_cells(fpmask);
  printf("Number of valid cells are %d\n",nr_of_valid_cells);  
  nr_tstep = number_of_timesteps(fpgrd, nr_of_valid_cells, binflag);
  printf("Number of timesteps are %d\n",nr_tstep);

  set_0(pt);
  
  printf("start_year = %d\n",start_year);
  printf("start_period = %d\n",start_period);
  printf("end_period = %d\n",end_period);
  to_start = tstp_to_start(start_year,start_period);
  printf("Timesteps to start = %d\n",to_start);

  for (i=0;i<to_start;i++)read_one_timestep(fpgrd,tstp,nr_of_valid_cells,mult,binflag); /* Moving down */

  run_years = tstp_to_start(start_period,(1+end_period));
  printf("Timesteps to run = %d\n",run_years);

  run_years = end_period - start_period +1;

  printf("Number of years to run = %d \n",run_years);
  prec =0.0;
  for(yy=0;yy<run_years;yy++)
    {
    for (i = 0;i<31;i++){  /* January */
      read_one_timestep(fpgrd,tstp,nr_of_valid_cells,mult,binflag);
      for (x=0;x<nr_of_valid_cells;x++) pt->jan[x] = pt->jan[x]+tstp[x]; }

    if (start_period%4!=0) {   /*February */
      for (i =0;i<28;i++) {  
        read_one_timestep(fpgrd,tstp,nr_of_valid_cells,mult,binflag);
        for (x=0;x<nr_of_valid_cells;x++) pt->feb[x] = pt->feb[x]+tstp[x]; }
        printf("Regular year  %d \n",start_period); }

    if (start_period%4==0) {  /* February*/
      for (i =0;i<29;i++) {  
        read_one_timestep(fpgrd,tstp,nr_of_valid_cells,mult,binflag);
        for (x=0;x<nr_of_valid_cells;x++) pt->feb[x] = pt->feb[x]+tstp[x]; }
        printf("Leap year  %d \n",start_period); }

    for (i = 0;i<31;i++){  /* March */
      read_one_timestep(fpgrd,tstp,nr_of_valid_cells,mult,binflag);
      for (x=0;x<nr_of_valid_cells;x++) pt->mar[x] = pt->mar[x]+tstp[x]; }

    for (i = 0;i<30;i++){  /* April */
      read_one_timestep(fpgrd,tstp,nr_of_valid_cells,mult,binflag);
      for (x=0;x<nr_of_valid_cells;x++) pt->apr[x] = pt->apr[x]+tstp[x]; }

   for (i = 0;i<31;i++){  /* May */
      read_one_timestep(fpgrd,tstp,nr_of_valid_cells,mult,binflag);
      for (x=0;x<nr_of_valid_cells;x++) pt->may[x] = pt->may[x]+tstp[x]; }

   for (i = 0;i<30;i++){  /* June */
      read_one_timestep(fpgrd,tstp,nr_of_valid_cells,mult,binflag);
      for (x=0;x<nr_of_valid_cells;x++) pt->jun[x] = pt->jun[x]+tstp[x]; }

   for (i = 0;i<31;i++){  /* July */
      read_one_timestep(fpgrd,tstp,nr_of_valid_cells,mult,binflag);
      for (x=0;x<nr_of_valid_cells;x++) pt->jul[x] = pt->jul[x]+tstp[x]; }

   for (i = 0;i<31;i++){  /* August */
      read_one_timestep(fpgrd,tstp,nr_of_valid_cells,mult,binflag);
      for (x=0;x<nr_of_valid_cells;x++) pt->aug[x] = pt->aug[x]+tstp[x]; }

   for (i = 0;i<30;i++){  /* September */
      read_one_timestep(fpgrd,tstp,nr_of_valid_cells,mult,binflag);
      for (x=0;x<nr_of_valid_cells;x++) pt->sep[x] = pt->sep[x]+tstp[x]; }

   for (i = 0;i<31;i++){  /* Oktober */
      read_one_timestep(fpgrd,tstp,nr_of_valid_cells,mult,binflag);
      for (x=0;x<nr_of_valid_cells;x++) pt->okt[x] = pt->okt[x]+tstp[x]; }

   for (i = 0;i<30;i++){  /* November */
      read_one_timestep(fpgrd,tstp,nr_of_valid_cells,mult,binflag);
      for (x=0;x<nr_of_valid_cells;x++) pt->nov[x] = pt->nov[x]+tstp[x]; }

   for (i = 0;i<31;i++){  /* December */
      read_one_timestep(fpgrd,tstp,nr_of_valid_cells,mult,binflag);
      for (x=0;x<nr_of_valid_cells;x++) pt->dec[x] = pt->dec[x]+tstp[x]; }

   start_period = start_period +1;
   } /* END of yearly loop  */

  write_data(pt,fpmask,run_years,outp_dir);  /* Function writes the output file */

  free(pt);   /***** Removes memory ****/
  fclose(fpgrd);
  fclose(fpmask);
/*** END main *********************/
}