加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

FORTRAN 90标准函数(二)

(2012-07-03 17:19:45)
标签:

杂谈

6  字符处理函数

函数名

说明

ACHAR(n)

ASCIIn转换为对应字符。n:I,n值域:0~127,结果:CH(1)

ADJUSTL(string)*

将字符串string左对齐,即去掉左端空格。string:CH(*),结果类型同string

ADJUSTR(string)*

将字符串string右对齐,即去掉右端空格。string:CH(*),结果类型同string

CHAR(n)*

ASCIIn转换为对应字符。n:I,n值域:0~255,结果: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,结果:Ib为真从右起

LEN(s)*

求字符串s的长度。s:CH(*),结果:I

LEN_TRIM(s)*

求字符串s去掉尾部空格后的字符数。s:CH(*),结果:I

LGE(s1,s2)*

ASCII码值判定字符串s1大于等于字符串s2s1:CH(*),s1:CH(*),结果:L

LGT(s1,s2)*

ASCII码值判定字符串s1大于字符串s2s1:CH(*),s1:CH(*),结果:L

LLE(s1,s2)*

ASCII码值判定字符串s1小于等于字符串s2s1:CH(*),s1:CH(*),结果:L

LLT(s1,s2)*

ASCII码值判定字符串s1小于字符串s2s1:CH(*),s1:CH(*),结果:L

REPEAT(s,n)*

求字符串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,结果:Ib为真右起

 

7  二进制位操作函数

函数名

说明

BIT_SIZE(n)*

n类型整数的最大二进制位数。n:I,结果类型同n

BTEST(n,p)

判定整数n的二进制表示右起第p位是否为1n:I,p:+I,p值域:0~64结果:L

IAND(m,n)*

mn进行按位逻辑“与”运算。m:I,n:I,结果类型同m

IBCHNG(n,p)

将整数n二进制表示右起第p位值取反。n:I,p:+I,p值域:0~64结果类型同n

IBCLR(n,p)

将整数n二进制表示右起第p位置0n:I,p:+I,p值域:0~64结果类型同n

IBITS(i,p,l)

从整数n二进制表示右起第p位开始取l位。n:I,p:+I,l:+I,结果类型同n

IBSET(n,p)

将整数n二进制表示右起第p位置1n:I,p:+I,p值域:0~64结果类型同n

IEOR(m,n)*

mn进行按位逻辑“异或”运算。m:I,n:I,结果类型同m

IOR(m,n)*

mn进行按位逻辑“或”运算。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为负)移动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=)

ALLOCATED(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)且向左(d>0)或向右循环移动s

EOSHIFT(a,s[,b][,d])

将数组a元素按行(d=1或缺省)或按列(d=2)且向左(d>0)或向右循环移动s

LBOUND(a[,d])*

求数组a某维d的下界。a;A,d:I,结果:I(d=1或缺省)A(d=2)

MATMUL(ma,mb)*

对二维数组(矩阵)mamb做乘积运算。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)

将数组tsfs按对应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,大小=维数

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指逻辑型掩码数组,指明允许操作的数组元素。缺省掩码数组指对数组所有元素进行操作。

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有