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; }
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 *********************/ }