📄 intrinsic.c
字号:
make_generic ("digits", GFC_ISYM_NONE, GFC_STD_F95); add_sym_2 ("dim", 1, 1, BT_REAL, dr, GFC_STD_F77, gfc_check_a_p, gfc_simplify_dim, gfc_resolve_dim, x, BT_UNKNOWN, dr, REQUIRED, y, BT_UNKNOWN, dr, REQUIRED); add_sym_2 ("idim", 1, 1, BT_INTEGER, di, GFC_STD_F77, NULL, gfc_simplify_dim, gfc_resolve_dim, x, BT_INTEGER, di, REQUIRED, y, BT_INTEGER, di, REQUIRED); add_sym_2 ("ddim", 1, 1, BT_REAL, dd, GFC_STD_F77, NULL, gfc_simplify_dim, gfc_resolve_dim, x, BT_REAL, dd, REQUIRED, y, BT_REAL, dd, REQUIRED); make_generic ("dim", GFC_ISYM_DIM, GFC_STD_F77); add_sym_2 ("dot_product", 0, 1, BT_UNKNOWN, 0, GFC_STD_F95, gfc_check_dot_product, NULL, gfc_resolve_dot_product, va, BT_REAL, dr, REQUIRED, vb, BT_REAL, dr, REQUIRED); make_generic ("dot_product", GFC_ISYM_DOT_PRODUCT, GFC_STD_F95); add_sym_2 ("dprod", 1, 1, BT_REAL, dd, GFC_STD_F77, NULL, gfc_simplify_dprod, gfc_resolve_dprod, x, BT_REAL, dr, REQUIRED, y, BT_REAL, dr, REQUIRED); make_generic ("dprod", GFC_ISYM_DPROD, GFC_STD_F77); add_sym_1 ("dreal", 1, 0, BT_REAL, dd, GFC_STD_GNU, NULL, NULL, NULL, a, BT_COMPLEX, dd, REQUIRED); make_generic ("dreal", GFC_ISYM_REAL, GFC_STD_GNU); add_sym_4 ("eoshift", 0, 1, BT_REAL, dr, GFC_STD_F95, gfc_check_eoshift, NULL, gfc_resolve_eoshift, ar, BT_REAL, dr, 0, sh, BT_INTEGER, ii, REQUIRED, bd, BT_REAL, dr, 1, dm, BT_INTEGER, ii, OPTIONAL); make_generic ("eoshift", GFC_ISYM_EOSHIFT, GFC_STD_F95); add_sym_1 ("epsilon", 0, 1, BT_REAL, dr, GFC_STD_F95, gfc_check_x, gfc_simplify_epsilon, NULL, x, BT_REAL, dr, REQUIRED); make_generic ("epsilon", GFC_ISYM_NONE, GFC_STD_F95); /* G77 compatibility for the ERF() and ERFC() functions. */ add_sym_1 ("erf", 1, 0, BT_REAL, dr, GFC_STD_GNU, gfc_check_g77_math1, NULL, gfc_resolve_g77_math1, x, BT_REAL, dr, REQUIRED); add_sym_1 ("derf", 1, 0, BT_REAL, dd, GFC_STD_GNU, gfc_check_g77_math1, NULL, gfc_resolve_g77_math1, x, BT_REAL, dd, REQUIRED); make_generic ("erf", GFC_ISYM_ERF, GFC_STD_GNU); add_sym_1 ("erfc", 1, 0, BT_REAL, dr, GFC_STD_GNU, gfc_check_g77_math1, NULL, gfc_resolve_g77_math1, x, BT_REAL, dr, REQUIRED); add_sym_1 ("derfc", 1, 0, BT_REAL, dd, GFC_STD_GNU, gfc_check_g77_math1, NULL, gfc_resolve_g77_math1, x, BT_REAL, dd, REQUIRED); make_generic ("erfc", GFC_ISYM_ERFC, GFC_STD_GNU); /* G77 compatibility */ add_sym_1 ("etime", 0, 1, BT_REAL, 4, GFC_STD_GNU, gfc_check_etime, NULL, NULL, x, BT_REAL, 4, REQUIRED); make_alias ("dtime", GFC_STD_GNU); make_generic ("etime", GFC_ISYM_ETIME, GFC_STD_GNU); add_sym_1 ("exp", 1, 1, BT_REAL, dr, GFC_STD_F77, gfc_check_fn_rc, gfc_simplify_exp, gfc_resolve_exp, x, BT_REAL, dr, REQUIRED); add_sym_1 ("dexp", 1, 1, BT_REAL, dd, GFC_STD_F77, NULL, gfc_simplify_exp, gfc_resolve_exp, x, BT_REAL, dd, REQUIRED); add_sym_1 ("cexp", 1, 1, BT_COMPLEX, dz, GFC_STD_F77, NULL, gfc_simplify_exp, gfc_resolve_exp, x, BT_COMPLEX, dz, REQUIRED); add_sym_1 ("zexp", 1, 1, BT_COMPLEX, dd, GFC_STD_GNU, NULL, gfc_simplify_exp, gfc_resolve_exp, x, BT_COMPLEX, dd, REQUIRED); make_alias ("cdexp", GFC_STD_GNU); make_generic ("exp", GFC_ISYM_EXP, GFC_STD_F77); add_sym_1 ("exponent", 1, 1, BT_INTEGER, di, GFC_STD_F95, gfc_check_x, gfc_simplify_exponent, gfc_resolve_exponent, x, BT_REAL, dr, REQUIRED); make_generic ("exponent", GFC_ISYM_EXPONENT, GFC_STD_F95); add_sym_0 ("fdate", 1, 0, BT_CHARACTER, dc, GFC_STD_GNU, NULL, NULL, gfc_resolve_fdate); make_generic ("fdate", GFC_ISYM_FDATE, GFC_STD_GNU); add_sym_2 ("floor", 1, 1, BT_INTEGER, di, GFC_STD_F95, gfc_check_a_ikind, gfc_simplify_floor, gfc_resolve_floor, a, BT_REAL, dr, REQUIRED, kind, BT_INTEGER, di, OPTIONAL); make_generic ("floor", GFC_ISYM_FLOOR, GFC_STD_F95); /* G77 compatible fnum */ add_sym_1 ("fnum", 0, 1, BT_INTEGER, di, GFC_STD_GNU, gfc_check_fnum, NULL, gfc_resolve_fnum, ut, BT_INTEGER, di, REQUIRED); make_generic ("fnum", GFC_ISYM_FNUM, GFC_STD_GNU); add_sym_1 ("fraction", 1, 1, BT_REAL, dr, GFC_STD_F95, gfc_check_x, gfc_simplify_fraction, gfc_resolve_fraction, x, BT_REAL, dr, REQUIRED); make_generic ("fraction", GFC_ISYM_FRACTION, GFC_STD_F95); add_sym_2 ("fstat", 0, 1, BT_INTEGER, di, GFC_STD_GNU, gfc_check_fstat, NULL, gfc_resolve_fstat, a, BT_INTEGER, di, REQUIRED, b, BT_INTEGER, di, REQUIRED); make_generic ("fstat", GFC_ISYM_FSTAT, GFC_STD_GNU); add_sym_1 ("ftell", 0, 1, BT_INTEGER, ii, GFC_STD_GNU, gfc_check_ftell, NULL, gfc_resolve_ftell, ut, BT_INTEGER, di, REQUIRED); make_generic ("ftell", GFC_ISYM_FTELL, GFC_STD_GNU); add_sym_2 ("fgetc", 0, 1, BT_INTEGER, di, GFC_STD_GNU, gfc_check_fgetputc, NULL, gfc_resolve_fgetc, ut, BT_INTEGER, di, REQUIRED, c, BT_CHARACTER, dc, REQUIRED); make_generic ("fgetc", GFC_ISYM_FGETC, GFC_STD_GNU); add_sym_1 ("fget", 0, 1, BT_INTEGER, di, GFC_STD_GNU, gfc_check_fgetput, NULL, gfc_resolve_fget, c, BT_CHARACTER, dc, REQUIRED); make_generic ("fget", GFC_ISYM_FGET, GFC_STD_GNU); add_sym_2 ("fputc", 0, 1, BT_INTEGER, di, GFC_STD_GNU, gfc_check_fgetputc, NULL, gfc_resolve_fputc, ut, BT_INTEGER, di, REQUIRED, c, BT_CHARACTER, dc, REQUIRED); make_generic ("fputc", GFC_ISYM_FPUTC, GFC_STD_GNU); add_sym_1 ("fput", 0, 1, BT_INTEGER, di, GFC_STD_GNU, gfc_check_fgetput, NULL, gfc_resolve_fput, c, BT_CHARACTER, dc, REQUIRED); make_generic ("fput", GFC_ISYM_FPUT, GFC_STD_GNU); /* Unix IDs (g77 compatibility) */ add_sym_1 ("getcwd", 0, 1, BT_INTEGER, di, GFC_STD_GNU, NULL, NULL, gfc_resolve_getcwd, c, BT_CHARACTER, dc, REQUIRED); make_generic ("getcwd", GFC_ISYM_GETCWD, GFC_STD_GNU); add_sym_0 ("getgid", 1, 0, BT_INTEGER, di, GFC_STD_GNU, NULL, NULL, gfc_resolve_getgid); make_generic ("getgid", GFC_ISYM_GETGID, GFC_STD_GNU); add_sym_0 ("getpid", 1, 0, BT_INTEGER, di, GFC_STD_GNU, NULL, NULL, gfc_resolve_getpid); make_generic ("getpid", GFC_ISYM_GETPID, GFC_STD_GNU); add_sym_0 ("getuid", 1, 0, BT_INTEGER, di, GFC_STD_GNU, NULL, NULL, gfc_resolve_getuid); make_generic ("getuid", GFC_ISYM_GETUID, GFC_STD_GNU); add_sym_1 ("hostnm", 0, 1, BT_INTEGER, di, GFC_STD_GNU, gfc_check_hostnm, NULL, gfc_resolve_hostnm, a, BT_CHARACTER, dc, REQUIRED); make_generic ("hostnm", GFC_ISYM_HOSTNM, GFC_STD_GNU); add_sym_1 ("huge", 0, 1, BT_REAL, dr, GFC_STD_F95, gfc_check_huge, gfc_simplify_huge, NULL, x, BT_UNKNOWN, dr, REQUIRED); make_generic ("huge", GFC_ISYM_NONE, GFC_STD_F95); add_sym_1 ("iachar", 1, 1, BT_INTEGER, di, GFC_STD_F95, gfc_check_ichar_iachar, gfc_simplify_iachar, NULL, c, BT_CHARACTER, dc, REQUIRED); make_generic ("iachar", GFC_ISYM_IACHAR, GFC_STD_F95); add_sym_2 ("iand", 1, 1, BT_INTEGER, di, GFC_STD_F95, gfc_check_iand, gfc_simplify_iand, gfc_resolve_iand, i, BT_INTEGER, di, REQUIRED, j, BT_INTEGER, di, REQUIRED); make_generic ("iand", GFC_ISYM_IAND, GFC_STD_F95); add_sym_2 ("and", 1, 0, BT_UNKNOWN, 0, GFC_STD_GNU, gfc_check_and, gfc_simplify_and, gfc_resolve_and, i, BT_UNKNOWN, 0, REQUIRED, j, BT_UNKNOWN, 0, REQUIRED); make_generic ("and", GFC_ISYM_AND, GFC_STD_GNU); add_sym_0 ("iargc", 1, 1, BT_INTEGER, di, GFC_STD_GNU, NULL, NULL, NULL); make_generic ("iargc", GFC_ISYM_IARGC, GFC_STD_GNU); add_sym_0 ("command_argument_count", 1, 1, BT_INTEGER, di, GFC_STD_F2003, NULL, NULL, NULL); make_generic ("command_argument_count", GFC_ISYM_COMMAND_ARGUMENT_COUNT, GFC_STD_F2003); add_sym_2 ("ibclr", 1, 1, BT_INTEGER, di, GFC_STD_F95, gfc_check_ibclr, gfc_simplify_ibclr, gfc_resolve_ibclr, i, BT_INTEGER, di, REQUIRED, pos, BT_INTEGER, di, REQUIRED); make_generic ("ibclr", GFC_ISYM_IBCLR, GFC_STD_F95); add_sym_3 ("ibits", 1, 1, BT_INTEGER, di, GFC_STD_F95, gfc_check_ibits, gfc_simplify_ibits, gfc_resolve_ibits, i, BT_INTEGER, di, REQUIRED, pos, BT_INTEGER, di, REQUIRED, ln, BT_INTEGER, di, REQUIRED); make_generic ("ibits", GFC_ISYM_IBITS, GFC_STD_F95); add_sym_2 ("ibset", 1, 1, BT_INTEGER, di, GFC_STD_F95, gfc_check_ibset, gfc_simplify_ibset, gfc_resolve_ibset, i, BT_INTEGER, di, REQUIRED, pos, BT_INTEGER, di, REQUIRED); make_generic ("ibset", GFC_ISYM_IBSET, GFC_STD_F95); add_sym_1 ("ichar", 1, 0, BT_INTEGER, di, GFC_STD_F77, gfc_check_ichar_iachar, gfc_simplify_ichar, gfc_resolve_ichar, c, BT_CHARACTER, dc, REQUIRED); make_generic ("ichar", GFC_ISYM_ICHAR, GFC_STD_F77); add_sym_2 ("ieor", 1, 1, BT_INTEGER, di, GFC_STD_F95, gfc_check_ieor, gfc_simplify_ieor, gfc_resolve_ieor, i, BT_INTEGER, di, REQUIRED, j, BT_INTEGER, di, REQUIRED); make_generic ("ieor", GFC_ISYM_IEOR, GFC_STD_F95); add_sym_2 ("xor", 1, 0, BT_UNKNOWN, 0, GFC_STD_GNU, gfc_check_and, gfc_simplify_xor, gfc_resolve_xor, i, BT_UNKNOWN, 0, REQUIRED, j, BT_UNKNOWN, 0, REQUIRED); make_generic ("xor", GFC_ISYM_XOR, GFC_STD_GNU); add_sym_0 ("ierrno", 1, 0, BT_INTEGER, di, GFC_STD_GNU, NULL, NULL, gfc_resolve_ierrno); make_generic ("ierrno", GFC_ISYM_IERRNO, GFC_STD_GNU); add_sym_3 ("index", 1, 1, BT_INTEGER, di, GFC_STD_F77, gfc_check_index, gfc_simplify_index, NULL, stg, BT_CHARACTER, dc, REQUIRED, ssg, BT_CHARACTER, dc, REQUIRED, bck, BT_LOGICAL, dl, OPTIONAL); make_generic ("index", GFC_ISYM_INDEX, GFC_STD_F77); add_sym_2 ("int", 1, 1, BT_INTEGER, di, GFC_STD_F77, gfc_check_int, gfc_simplify_int, gfc_resolve_int, a, BT_REAL, dr, REQUIRED, kind, BT_INTEGER, di, OPTIONAL); add_sym_1 ("ifix", 1, 0, BT_INTEGER, di, GFC_STD_F77, NULL, gfc_simplify_ifix, NULL, a, BT_REAL, dr, REQUIRED); add_sym_1 ("idint", 1, 0, BT_INTEGER, di, GFC_STD_F77, NULL, gfc_simplify_idint, NULL, a, BT_REAL, dd, REQUIRED); make_generic ("int", GFC_ISYM_INT, GFC_STD_F77); add_sym_2 ("ior", 1, 1, BT_INTEGER, di, GFC_STD_F95, gfc_check_ior, gfc_simplify_ior, gfc_resolve_ior, i, BT_INTEGER, di, REQUIRED, j, BT_INTEGER, di, REQUIRED); make_generic ("ior", GFC_ISYM_IOR, GFC_STD_F95); add_sym_2 ("or", 1, 0, BT_UNKNOWN, 0, GFC_STD_GNU, gfc_check_and, gfc_simplify_or, gfc_resolve_or, i, BT_UNKNOWN, 0, REQUIRED, j, BT_UNKNOWN, 0, REQUIRED); make_generic ("or", GFC_ISYM_OR, GFC_STD_GNU); /* The following function is for G77 compatibility. */ add_sym_1 ("irand", 0, 1, BT_INTEGER, 4, GFC_STD_GNU, gfc_check_irand, NULL, NULL, i, BT_INTEGER, 4, OPTIONAL); make_generic ("irand", GFC_ISYM_IRAND, GFC_STD_GNU); add_sym_1 ("isatty", 0, 0, BT_LOGICAL, dl, GFC_STD_GNU, gfc_check_isatty, NULL, gfc_resolve_isatty, ut, BT_INTEGER, di, REQUIRED); make_generic ("isatty", GFC_ISYM_ISATTY, GFC_STD_GNU); add_sym_2 ("ishft", 1, 1, BT_INTEGER, di, GFC_STD_F95, gfc_check_ishft, gfc_simplify_ishft, gfc_resolve_ishft, i, BT_INTEGER, di, REQUIRED, sh, BT_INTEGER, di, REQUIRED); make_generic ("ishft", GFC_ISYM_ISHFT, GFC_STD_F95); add_sym_3 ("ishftc", 1, 1, BT_INTEGER, di, GFC_STD_F95, gfc_check_ishftc, gfc_simplify_ishftc, gfc_resolve_ishftc, i, BT_INTEGER, di, REQUIRED, sh, BT_INTEGER, di, REQUIRED, sz, BT_INTEGER, di, OPTIONAL); make_generic ("ishftc", GFC_ISYM_ISHFTC, GFC_STD_F95); add_sym_2 ("kill", 1, 1, BT_INTEGER, di, GFC_STD_GNU, gfc_check_kill, NULL, gfc_resolve_kill, a, BT_INTEGER, di, REQUIRED, b, BT_INTEGER, di, REQUIRED); make_generic ("kill", GFC_ISYM_KILL, GFC_STD_GNU); add_sym_1 ("kind", 0, 1, BT_INTEGER, di, GFC_STD_F95, gfc_check_kind, gfc_simplify_kind, NULL, x, BT_REAL, dr, REQUIRED); make_generic ("kind", GFC_ISYM_NONE, GFC_STD_F95); add_sym_2 ("lbound", 0, 1, BT_INTEGER, di, GFC_STD_F95, gfc_check_lbound, gfc_simplify_lbound, gfc_resolve_lbound, ar, BT_REAL, dr, REQUIRED, dm, BT_INTEGER, di, OPTIONAL); make_generic ("lbound", GFC_ISYM_LBOUND, GFC_STD_F95); add_sym_1 ("len", 0, 1, BT_INTEGER, di, GFC_STD_F77, NULL, gfc_simplify_len, gfc_resolve_len, stg, BT_CHARACTER, dc, REQUIRED); make_generic ("len", GFC_ISYM_LEN, GFC_STD_F77); add_sym_1 ("len_trim", 1, 1, BT_INTEGER, di, GFC_STD_F95, NULL, gfc_simplify_len_trim, gfc_resolve_len_trim, stg, BT_CHARACTER, dc, REQUIRED); make_alias ("lnblnk", GFC_STD_GNU); make_generic ("len_trim", GFC_ISYM_LEN_TRIM, GFC_STD_F95); add_sym_2 ("lge", 1, 0, BT_LOGICAL, dl, GFC_STD_F77, NULL, gfc_simplify_lge, NULL, sta, BT_CHARACTER, dc, REQUIRED, stb, BT_CHARACTER, dc, REQUIRED); make_generic ("lge", GFC_ISYM_LGE, GFC_STD_F77); add_sym_2 ("lgt", 1, 0, BT_LOGICAL, dl, GFC_STD_F77, NULL, gfc_simplify_lgt, NULL, sta, BT_CHARACTER, dc, REQUIRED, stb, BT_CHARACTER, dc, REQUIRED); make_generic ("lgt", GFC_ISYM_LGT, GFC_STD_F77); add_sym_2 ("lle", 1, 0, BT_LOGICAL, dl, GFC_STD_F77, NULL, gfc_simplify_lle, NULL, sta, BT_CHARACTER, dc, REQUIRED, stb, BT_CHARACTER, dc, REQUIRED); make_generic ("lle", GFC_ISYM_LLE, GFC_STD_F77); add_sym_2 ("llt", 1, 0, BT_LOGICAL, dl, GFC_STD_F77, NULL, gfc_simplify_llt, NULL, sta, BT_CHARACTER, dc, REQUIRED, stb, BT_CHARACTER, dc, REQUIRED); make_generic ("llt", GFC_ISYM_LLT, GFC_STD_F77); add_sym_2 ("link", 0, 1, BT_INTEGER, di, GFC_STD_GNU, gfc_check_link, NULL, gfc_resolve_link, a, BT_CHARACTER, dc, REQUIRED, b, BT_CHARACTER, dc, REQUIRED); make_generic ("link", GFC_ISYM_LINK, GFC_STD_GNU); add_sym_1 ("log", 1, 1, BT_REAL, dr, GFC_STD_F77, gfc_check_fn_rc, gfc_simplify_log, gfc_resolve_log, x, BT_REAL, dr, REQUIRED); add_sym_1 ("alog", 1, 1, BT_REAL, dr, GFC_STD_F77, NULL, gfc_simplify_log, gfc_resolve_log, x, BT_REAL, dr, REQUIRED); add_sym_1 ("dlog", 1, 1, BT_REAL, dd, GFC_STD_F77, NULL, gfc_simplify_log, gfc_resolve_log, x, BT_REAL, dd, REQUIRED); add_sym_1 ("clog", 1, 1, BT_COMPLEX, dz, GFC_STD_F77, NULL, gfc_simplify_log, gfc_resolve_log, x, BT_COMPLEX, dz, REQUIRED); add_sym_1 ("zlog", 1, 1, BT_COMPLEX, dd, GFC_STD_GNU, NULL, gfc_simplify_log, gfc_resolve_log, x, BT_COMPLEX, dd, REQUIRED); make_alias ("cdlog", GFC_STD_GNU); make_generic ("log", GFC_ISYM_LOG, GFC_STD_F77); add_sym_1 ("log10", 1, 1, BT_REAL, dr, GFC_STD_F77, gfc_check_fn_r, gfc_simplify_log10, gfc_resolve_log10,
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -