#include #include int fcw = 4; int isz = 4; int rsz = 4; int ben = 0; FILE *wp; void check_fortran_integer(void) { int b; int l; FILE *fp; fp = fopen("F90_INTEGER","r"); fseek(fp,0,SEEK_END); l = ftell(fp); if (l == 16) isz = 8; else if (l == 20) fcw = 8; else if (l == 24) { isz = 8; fcw = 8; } rewind(fp); b = fgetc(fp); if (b == 0) ben = 1; fclose(fp); } void check_fortran_real(void) { int b; int l; FILE *fp; fp = fopen("F90_REAL","r"); fseek(fp,0,SEEK_END); l = ftell(fp); rsz = l - 2 * fcw; fclose(fp); } void print_info(void) { wp = fopen("most_info.txt","w"); fprintf(wp,"\nSystem info for <%s>\n",getenv("HOSTNAME")); fprintf(wp,"Architecture: %s\n",getenv("MOSTARCH")); if (ben) fprintf(wp,"Endian format : big endian\n"); else fprintf(wp,"Endian format : little endian\n"); fprintf(wp,"FORTRAN control word size : %d bytes\n",fcw); fprintf(wp,"FORTRAN integer size : %d bytes\n",isz); fprintf(wp,"FORTRAN real size : %d bytes\n",rsz); fprintf(wp,"C int size : %ld bytes\n",sizeof(int)); fprintf(wp,"C float size : %ld bytes\n",sizeof(float)); fprintf(wp,"C long size : %ld bytes\n",sizeof(long)); fprintf(wp,"C long long size : %ld bytes\n",sizeof(long long)); fclose(wp); } int main(int argc, char *argv[]) { check_fortran_integer(); check_fortran_real(); print_info(); return 0; }