收藏 分享(赏)

fortran常用函数.pdf

上传人:精品资料 文档编号:8588217 上传时间:2019-07-04 格式:PDF 页数:5 大小:253.58KB
下载 相关 举报
fortran常用函数.pdf_第1页
第1页 / 共5页
fortran常用函数.pdf_第2页
第2页 / 共5页
fortran常用函数.pdf_第3页
第3页 / 共5页
fortran常用函数.pdf_第4页
第4页 / 共5页
fortran常用函数.pdf_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
资源描述

1、 符号约定: I代表整型 ;R代表实型 ;C 代表复型 ;CH代表字符型 ;S代表字符串 ;L 代表逻辑型 ;A代表数组 ;P 代表指针 ;T代表派生类型 ;AT为任意类型。 s:P表示 s类型为 P 类型 (任意 kind值 )。 s:P(k)表示 s类型为 P类型 (kind值=k)。 表示可选参数。 *表示常用函数。 表 1 数值和类型转换函数 函数名 说明 ABS(x)* 求 x 的绝对值 x。 x:I、 R, 结果类型同 x; x:C, 结果 :R AIMAG(x) 求 x 的实部。 x:C, 结果 :R AINT(x,kind)* 对 x 取整 ,并转换为实数 (kind)。 x:

2、R, kind:I, 结果 :R(kind) AMAX0(x1,x2,x3, )* 求 x1,x2,x3,中最大值。 xI:I, 结果 :R AMIN0(x1,x2,x3, )* 求 x1,x2,x3,中最小值。 xI:I, 结果 :R ANINT(x,kind)* 对 x 四舍五入取整 ,并转换为实数 (kind)。 x:R, kind:I, 结果 :R(kind) CEILING(x)* 求大于等于 x 的最小整数。 x:R, 结果 :I CMPLX(x,y,kind) 将参数转换为 x、 (x,0.0)或 (x,y)。 x:I、 R、 C, y:I、 R,kind:I, 结果 :C(ki

3、nd) CONJG(x) 求 x 的共轭复数。 x:C, 结果 :C DBLE(x)* 将 x 转换为双精度实数。 x:I、 R、 C, 结果 :R(8) DCMPLX(x,y) 将参数转换为 x、 (x,0.0)或 (x,y)。 x:I、 R、 C, y:I、 R, 结果 :C(8) DFLOAT(x) 将 x 转换为双精度实数。 x:I, 结果 :R(8) DIM(x,y)* 求 x-y 和 0 中最大值 , 即 MAX(x-y,0)。 x:I、 R, y 的类型同 x,结果类型同x DPROD(x,y) 求 x 和 y 的乘积 ,并转换为双精度实数。 x:R, y:R, 结果 :R(8)

4、 FLOAT(x)* 将 x 转换为单精度实数。 x:I, 结果 :R FLOOR(x)* 求小于等于 x 的最大整数。 x:R, 结果 :I IFIX(x)* 将 x 转换为整数 (取整 )。 x:R, 结果 :I IMAG(x) 同 AIMAG(x) INT(x,kind)* 将 x 转换为整数 (取整 )。 x:I、 R、 C, kind:I, 结果 :I(kind) LOGICAL(x,kind)* 按 kind 值转换新逻辑值。 x:L, 结果 :L(kind) MAX(x1,x2,x3, )* 求 x1,x2,x3,中最大值。 xI为任意类型 , 结果类型同 xI MAX1(x1,

5、x2,x3, )* 求 x1,x2,x3,中最大值 (取整 )。 xI:R, 结果 :I MIN(x1,x2,x3, )* 求 x1,x2,x3,中最小值。 xI为任意类型 , 结果类型同 xI MIN1(x1,x2,x3, )* 求 x1,x2,x3中最小值 (取整 )。 xI:R, 结果 :I MOD(x,y)* 求 x/y 的余数 ,值为 x-INT(x/y)*y。 x:I、 R, y 的类型同 x, 结果类型同 x MODULO(x,y) 求 x/y 余数 ,值为 x-FLOOR(x/y)*y。 x:I、 R, y 的类型同 x, 结果类型同 x NINT(x,kind)* 将 x 转

6、换为整数 (四舍五入 )。 x:R, kind:I, 结果 :I(kind) REAL(x,kind)* 将 x 转换为实数。 x:I、 R、 C, kind:I, 结果 :R(kind) SIGN(x,y)* 求 x 的绝对值乘以 y 的符号。 x:I、 R, y 的类型同 x, 结果类型同 x SNGL(x) 将双精度实数转换为单精度实数。 x:R(8), 结果 :R ZEXT(x) 用 0 向左侧扩展 x。 x:I、 L, 结果 :I 表 2 三角函数 函数名 说明 ACOS(x)* 求 x 的反余弦 arccos(x)。 x:R,结果类型同 x,结果值域 :0 ACOSD(x)* 求

7、x 的反余弦 arccos(x)。 x:R,结果类型同 x,结果值域 :0180 ASIN(x)* 求 x 的反正弦 arcsin(x)。 x:R,结果类型同 x,结果为弧度 ,值域 :0 ASIND(x)* 求 x 的反正弦 arcsin(x)。 x:R,结果类型同 x,结果为度 ,值域 :0180 ATAN(x)* 求 x 的反正切 arctg(x)。 x:R,结果类型同 x,结果为弧度 ,值域 :-/2/2 ATAND(x)* 求 x 的反正切 arctg(x)。 x:R,结果类型同 x,结果为度 ,值域 :-9090 ATAN2(y,x) 求 x 的反正切 arctg(y/x)。 y:

8、R,x 和结果类型同 x,结果值域 :- ATAN2D(y,x) 求 x 的反正切 arctg(y/x)。 y:R,x 和结果类型同 x,结果值域 :-180180 COS(x)* 求 x 的余弦 cos(x)。 x:R、 C,x取值弧度 ,结果类型同 x COSD(x)* 求 x 的余弦 cos(x)。 x:R,x 取值度 ,结果类型同 x COSH(x) 求 x 的双曲余弦 ch(x)。 x:R,结果类型同 x COTAN(x)* 求 x 的余切 ctg(x)。 x:R,x 取值度 ,结果类型同 x SIN(x)* 求 x 的正弦 sin(x)。 x:R、 C,x取值弧度 ,结果类型同 x

9、 SIND(x)* 求 x 的正弦 sin(x)。 x:R,x 取值度 ,结果类型同 x SINH(x) 求 x 的双曲正弦 sh(x)。 x:R,结果类型同 x TAN(x)* 求 x 的正切 tg(x)。 x:R,x 取值弧度 ,结果类型同 x TAND(x)* 求 x 的正切 tg(x)。 x:R,x 取值度 ,结果类型同 x TANH(x) 求 x 的双曲正切 th(x)。 x:R,结果类型同 x 注:三角函数名前有 C、 D 的函数为复数、双精度型函数。 表 3 指数、平方根和对数函数 函数名 说明 ALOG(x) 求 x 的自然对数 ln(x)。 x:R(4),结果 :R(4) A

10、LOG10(x) 求 x 以 10 为底一般对数 log10(x)。 x:R(4),结果 :R(4) EXP(x)* 求指数 ,即 ex。 x:R、 C,结果类型同 x LOG(x)* 求自然对数 ,即 ex。 x:R、 C,结果类型同 x LOG10(x)* 求以 10 为底对数 ,即。 x:R,结果类型同 x SQRT(x)* 求 x 的平方根。 x:R、 C,结果类型同 x 注:指数函数名、平方根函数名、对数函数名前有 C、 D 的函数为复数、双精度型函数。 表 4 参数查询函数 函数名 说明 ALLOCATED(a)* 判定动态数组 a 是否分配内存。 a:A,结果 :L,分配 :.T

11、RUE.,未分配 :.FALSE. ASSOCIATED(p,t)* 判定指针 p 是否指向目标 t。 p:P,t:AT,结果 :L,指向 :.TRUE.,未指向 :.FALSE. DIGITS(x) 查询 x 的机内编码数值部分二进制位数 (除符号位和指数位 )。 x:I、 R,结果 :I EPSILON(x)* 查询 x 类型可表示的最小正实数。 x:R,结果类型同 x。最小正实数 :1.1920929E-07 HUGE(x)* 查询 x 类型可表示的最大数。 x:I、 R,结果类型同 x ILEN(x) 查询 x 的反码值。 x:I,结果类型同 x KIND(x)* 查询 x 的 kin

12、d 参数值。 x:I、 R、 C、 CH、 L,结果 :I MAXEXPONENT(x)* 查询 x 的最大正指数值。 x:R,结果 :I(4) MINEXPONENT(x)* 查询 x 的最大负指数值。 x:R,结果 :I(4) PRECISION(x)* 查询 x 类型有效数字位数。 x:R、 C,结果 :I(4) PRESENT(x) 查询可选形参 x 是否有对应实参。 x:AT,结果 :L。有 :.TRUE.,没有 :.FALSE. RADIX(x) 查询 x 类型的基数。 x:I、 R,结果 :L RANGE(x)* 查询 x 类型的指数范围。 x:I、 R、 C,结果 :I(4)

13、SIZEOF(x)* 查询 x 的存储分配字节数。 x:AT,结果 :I(4) TINY(x)* 查询 x 的最小正值。 x:R,结果类型同 x 表 5 实数检测和控制函数 函数名 说明 EXPONENT(x)* 求实数 x 机内编码表示的指数值。 x:R,结果 :I FRACTION(x)* 求实数 x 机内编码表示的小数值。 x:R,结果类型同 x NEAREST(x,s) 根据 s 的正负号求最接近 x 的值。 x:R,结果 :R,且不为 0 RRSPACING(x) 求 x 与系统最大数之间的差值。 x:R,结果类型同 x SCALE(x,I)* 求 x 乘以 2i。 x:R,i:I,

14、结果类型同 x SET_EXPONENT(x,i) 求由 x 的机内编码小数值与指数 i 组成的实数。 x:R,i:I,结果类型同 x SPACING(x)* 求 x 与 x 最近值的差值绝对值。 x:R,结果类型同 x 表 6 字符处理函数 函数名 说明 ACHAR(n) 将 ASCII 码 n 转换为对应字符。 n:I,n 值域 :0127,结果 :CH(1) ADJUSTL(string)* 将字符串 string 左对齐 ,即去掉左端空格。 string:CH(*),结果类型同 string ADJUSTR(string)* 将字符串 string 右对齐 ,即去掉右端空格。 stri

15、ng:CH(*),结果类型同 string CHAR(n)* 将 ASCII 码 n 转换为对应字符。 n:I,n 值域 :0255,结果 :CH(1) IACHAR(c)* 将字符 c 转换为对应的 ASCII码。 c:CH(1),结果 :I ICHAR(c)* 将字符 c 转换为对应的 ASCII码。 c:CH(1),结果 :I INDEX(s,ss,b)* 求子串 ss 在串 s 中起始位置。 s:CH(*),ss:CH(*),b:L,结果 :I。 b 为真从右起 LEN(s)* 求字符串 s 的长度。 s:CH(*),结果 :I LEN_TRIM(s)* 求字符串 s 去掉尾部空格后的

16、字符数。 s:CH(*),结果 :I LGE(s1,s2)* 按 ASCII 码值判定字符串 s1 大于等于字符串 s2。 s1:CH(*),s1:CH(*),结果 :L LGT(s1,s2)* 按 ASCII 码值判定字符串 s1 大于字符串 s2。 s1:CH(*),s1:CH(*),结果 :L LLE(s1,s2)* 按 ASCII 码值判定字符串 s1 小于等于字符串 s2。 s1:CH(*),s1:CH(*),结果 :L LLT(s1,s2)* 按 ASCII 码值判定字符串 s1 小于字符串 s2。 s1:CH(*),s1:CH(*),结果 :L REPEAT(s,n)* 求字符串

17、 s 重复 n 次的新字符串。 s:CH(*),n:I,结果 :CH(*) SCAN(s,st,b) 求串 st 中任一字符在串 s 中的位置。 s:CH(*),ss:CH(*),b:L,结果 :I TRIM(s)* 求字符串 s 去掉首尾部空格后的字符数。 s:CH(*),结果 :CH(*) VERIFY(s,st,b) 求不在串 st 中字符在 s 中位置。 s:CH(*),ss:CH(*),b:L,结果 :I。 b 为真右起 表 7 二进制位操作函数 函数名 说明 BIT_SIZE(n)* 求 n 类型整数的最大二进制位数。 n:I,结果类型同 n BTEST(n,p) 判定整数 n 的

18、二进制表示右起第 p 位是否为 1。 n:I,p:+I,p 值域 :064 结果 :L IAND(m,n)* 对 m 和 n 进行按位逻辑“与”运算。 m:I,n:I,结果类型同 m IBCHNG(n,p) 将整数 n 二进制表示右起第 p位值取反。 n:I,p:+I,p 值域 :064 结果类型同 n IBCLR(n,p) 将整数 n 二进制表示右起第 p位置 0。 n:I,p:+I,p 值域 :064 结果类型同 n IBITS(i,p,l) 从整数 n 二进制表示右起第 p位开始取 l 位。 n:I,p:+I,l:+I,结果类型同 n IBSET(n,p) 将整数 n 二进制表示右起第

19、p位置 1。 n:I,p:+I,p 值域 :064 结果类型同 n IEOR(m,n)* 对 m 和 n 进行按位逻辑“异或”运算。 m:I,n:I,结果类型同 m IOR(m,n)* 对 m 和 n 进行按位逻辑“或”运算。 m:I,n:I,结果类型同 m ISHA(n,s)* 对 n 向左 (s 为正 )或向右 (s 为负 )移动 s 位 (算术移位 )。 n:I,s:I,结果类型同 n ISHC(n,s)* 对 n 向左 (s 为正 )或向右 (s 为负 )移动 s 位 (循环移位 )。 n:I,s:I,结果类型同 n ISHFT(n,s)* 对 n 向左 (s 为正 )或向右 (s 为

20、负 )移动 s 位 (逻辑移位 )。 n:I,s:I,结果类型同 n ISHFTC(n,s,size) 对 n 最右边 size 位向左 (s 为正 )或向右 (s 为负 )移动 s 位 (循环移位 ) ISHL(n,s) 对 n 向左 (s 为正 )或向右 (s 为负 )移动 s 位 (逻辑移位 )。 n:I,s:I,结果类型同 n NOT(n)* 对 n 进行按位逻辑“非”运算。 n:I,结果类型同 n 表 8 数组运算、查询和处理函数 函数名 说明 ALL(m,d)* 判定逻辑数组 m 各元素是否都为 “真 ”。 m;L-A,d:I,结果 :L(缺省 d)或 L-A(d=维 ) ALLO

21、CATED(a)* 判定动态数组 a 是否分配存储空间。 a:A,结果 :L。分配 :.TRUE.,未分配 .FALSE. ANY(m,d)* 判定逻辑数组 m 是否有一元素为 “真 ”。 m;L-A,d:I,结果 :L(缺省 d)或 L-A(d=维 ) COUNT(m,d)* 计算逻辑数组 m 为 “真 ”元素个数。 m;L-A,d:I,结果 :I(缺省 d)或 I-A(d=维 ) CSHIFT(a,s,d)* 将数组 a 元素按行 (d=1 或缺省 )或按列 (d=2)且向左 (d0)或向右循环移动 s 次 EOSHIFT(a,s,b,d) 将数组 a 元素按行 (d=1 或缺省 )或按列

22、 (d=2)且向左 (d0)或向右循环移动 s 次 LBOUND(a,d)* 求数组 a 某维 d 的下界。 a;A,d:I,结果 :I(d=1 或缺省 )或 A(d=2) MATMUL(ma,mb)* 对二维数组 (矩阵 )ma 和 mb 做乘积运算。 ma:A,mb:A,结果 :A MAXLOC(a,m)* 求数组 a 中对应掩码 m 为 “真 ”最大元素下标值。 a:A,m:L-A,结果 :A,大小 =维数 MAXVAL(a,d,m)* 求数组 a 中对应掩码 m 为 “真 ”元素最大值。 a:A,d:I,m:L-A,结果 :A,大小 =维数 MERGE(ts,fs,m) 将数组 ts和

23、 fs 按对应 m 掩码数组元素合并 ,掩码为 “真 ”取 ts 值 ,否则取 fs 值 MINLOC(a,m)* 求数组 a 中对应掩码 m 为 “真 ”最小元素下标值。 a:A,m:L-A,结果 :A,大小 =维数 MINVAL(a,d,m)* 求数组 a 中对应掩码 m 为 “真 ”元素最小值。 a:A,d:I,m:L-A,结果 :A,大小 =维数 PACK(a,m,v) 将数组 a 中对应 m 掩码数组元素为 “真 ”元素组成一维数组并与一维数组 v 合并 PRODUCT(a,d,m) 数组 a 中对应掩码 m 为 “真 ”元素乘积。 a:A,d:I,m:L-A,结果 :A,大小 =维

24、数 RESHAPE(a,s)* 将数组 a 的形按数组 s 定义的形转换。数组形指数组维数、行数、列数、 SHAPE(a) 求数组 a 的形。 a:A,结果 :A(一维 ) SIZE(a,d)* 求数组 a 的元素个数。 a:A,d:I,结果 :I SPREAD(a,d,n) 以某维 d 扩展数组 a 的元素 n次。 a:A,d:I,n:I,结果 :A SUM(a,d,m)* 数组 a 中对应掩码 m 为 “真 ”元素之和。 a:A,d:I,m:L-A,结果 :A,大小 =维数 TRANSPOSE(a).* 对数组 a 进行转置。 a:A,结果 :A LBOUND(a,d)* 求数组 a 某维 d 的上界。 a;A,d:I,结果 :I(d=1 或缺省 )或 A(d=2) UNPACK(a,m,f) 将一维数组 a、掩码数组 m 值和 f 值组合生成新数组。 a;A,m:L-A,f:同 a,结果 :A 注 : 参数 m 指逻辑型掩码数组 ,指明允许操作的数组元素。缺省掩码数组指对数组所有元素进行操作。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报