#include main() { int nc=100, nnc, ido, kdo; double gi, gk, sp1, sp2, xn, ye, latf, lonf; fprintf(stderr, "\n Easting/Northing to Lat./Lon. Conversion\n\n"); gparmi("Enter coordinates number (+200 for WGS) ==> ", &nc); nnc = nc; if (nc >= 200) nnc -= 200; gi = 0.; gk = 0.; if ((nnc==0) || (nnc>62)) gparmd2(" Origin Latitude, Longitude (in degrees) : ", &gi,&gk); sp1 = 0.; sp2 = 0.; if (nnc == 72) gparmd2(" Two std.parallel Latitudes (in degrees) : ", &sp1,&sp2); cvinit(nc, gi*60., gk*60., sp1*60., sp2*60.); while (1) { ye = 99999.; xn = 0.; prompt("\n Easting (ye) and Northing (xn) ? (in km)\n"); gparmd2(" < Hit RETURN to Quit > ==> ", &ye,&xn); if (ye == 99999.) { fputc('\n',stderr); break; } cvenik(ye, xn, &latf, &lonf); ido = (int)(latf/60.); kdo = (int)(lonf/60.); latf -= (double)(ido*60); lonf -= (double)(kdo*60); printf(" ye = %9.3f xn =%9.3f : N%3d %7.3lf E%4d %7.3lf\n", ye,xn, ido,latf,kdo,lonf); } }