neetcdf 3.4 を Linux + Fujistu FRT でコンパイルするためのパッチ 2000-06-14 豊田英司 利用方 1. FC=frt CC=fcc CXX=FCC ./configure する。 2. いっぺん make する。fortran ディレクトリで死ぬ。 (これは ncx.c を作成するために必要) 3. 此のパッチをあてる。 4. もういっかい make する *** src/libsrc/ncx.c.original Wed Jun 14 12:37:42 2000 --- src/libsrc/ncx.c Fri Jun 2 10:56:39 2000 *************** *** 1125,1133 **** { float xx; get_ix_float(xp, &xx); ! *ip = (schar) xx; ! if(xx > SCHAR_MAX || xx < SCHAR_MIN) return NC_ERANGE; return ENOERR; } --- 1125,1133 ---- { float xx; get_ix_float(xp, &xx); ! if(xx > (float)SCHAR_MAX || xx < (float)SCHAR_MIN) return NC_ERANGE; + *ip = (schar) xx; return ENOERR; } *************** *** 1136,1144 **** { float xx; get_ix_float(xp, &xx); ! *ip = (uchar) xx; ! if(xx > UCHAR_MAX || xx < 0) return NC_ERANGE; return ENOERR; } --- 1136,1144 ---- { float xx; get_ix_float(xp, &xx); ! if(xx > (float)UCHAR_MAX || xx < 0.0) return NC_ERANGE; + *ip = (uchar) xx; return ENOERR; } *************** *** 1147,1155 **** { float xx; get_ix_float(xp, &xx); ! *ip = (short) xx; ! if(xx > SHORT_MAX || xx < SHORT_MIN) return NC_ERANGE; return ENOERR; } --- 1147,1155 ---- { float xx; get_ix_float(xp, &xx); ! if(xx > (float)SHORT_MAX || xx < (float)SHORT_MIN) return NC_ERANGE; + *ip = (short) xx; return ENOERR; } *************** *** 1158,1166 **** { float xx; get_ix_float(xp, &xx); - *ip = (int) xx; if(xx > (double)INT_MAX || xx < (double)INT_MIN) return NC_ERANGE; return ENOERR; } --- 1158,1166 ---- { float xx; get_ix_float(xp, &xx); if(xx > (double)INT_MAX || xx < (double)INT_MIN) return NC_ERANGE; + *ip = (int) xx; return ENOERR; } *************** *** 1169,1177 **** { float xx; get_ix_float(xp, &xx); - *ip = (long) xx; if(xx > LONG_MAX || xx < LONG_MIN) return NC_ERANGE; return ENOERR; } --- 1169,1177 ---- { float xx; get_ix_float(xp, &xx); if(xx > LONG_MAX || xx < LONG_MIN) return NC_ERANGE; + *ip = (long) xx; return ENOERR; } *************** *** 1547,1555 **** { double xx; get_ix_double(xp, &xx); ! *ip = (schar) xx; ! if(xx > SCHAR_MAX || xx < SCHAR_MIN) return NC_ERANGE; return ENOERR; } --- 1547,1555 ---- { double xx; get_ix_double(xp, &xx); ! if(xx > (double)SCHAR_MAX || xx < (double)SCHAR_MIN) return NC_ERANGE; + *ip = (schar) xx; return ENOERR; } *************** *** 1569,1577 **** { double xx; get_ix_double(xp, &xx); ! *ip = (short) xx; ! if(xx > SHORT_MAX || xx < SHORT_MIN) return NC_ERANGE; return ENOERR; } --- 1569,1577 ---- { double xx; get_ix_double(xp, &xx); ! if(xx > (double)SHORT_MAX || xx < (double)SHORT_MIN) return NC_ERANGE; + *ip = (short) xx; return ENOERR; } *************** *** 1580,1588 **** { double xx; get_ix_double(xp, &xx); ! *ip = (int) xx; ! if(xx > INT_MAX || xx < INT_MIN) return NC_ERANGE; return ENOERR; } --- 1580,1588 ---- { double xx; get_ix_double(xp, &xx); ! if(xx > (double)INT_MAX || xx < (double)INT_MIN) return NC_ERANGE; + *ip = (int) xx; return ENOERR; } *************** *** 1591,1599 **** { double xx; get_ix_double(xp, &xx); ! *ip = (long) xx; ! if(xx > LONG_MAX || xx < LONG_MIN) return NC_ERANGE; return ENOERR; } --- 1591,1599 ---- { double xx; get_ix_double(xp, &xx); ! if(xx > (double)LONG_MAX || xx < (double)LONG_MIN) return NC_ERANGE; + *ip = (long) xx; return ENOERR; } *** src/fortran/cfortran.h.initial Fri Jun 2 09:36:30 2000 --- src/fortran/cfortran.h Fri Jun 2 09:40:02 2000 *************** *** 122,127 **** --- 122,130 ---- #if defined(VISUAL_CPLUSPLUS) #define PowerStationFortran #endif + #if defined(linux) + #define sunFortran + #endif #endif /* ...Fortran */ #endif /* ...Fortran */