FORTRAN 90标准函数(二)
(2012-07-03 17:19:45)
标签:
杂谈 |
表6
函数名 |
说明 |
ACHAR(n) |
将ASCII码n转换为对应字符。n:I,n值域:0~127,结果:CH(1) |
ADJUSTL(string)* |
将字符串string左对齐,即去掉左端空格。string:CH(*),结果类型同string |
ADJUSTR(string)* |
将字符串string右对齐,即去掉右端空格。string:CH(*),结果类型同string |
CHAR(n)* |
将ASCII码n转换为对应字符。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,结果:I。b为真从右起 |
LEN(s)* |
求字符串s的长度。s:CH(*),结果:I |
LEN_TRIM(s)* |
求字符串s去掉尾部空格后的字符数。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)* |
求字符串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的二进制表示右起第p位是否为1。n:I,p:+I,p值域:0~64结果:L |
IAND(m,n)* |
对m和n进行按位逻辑“与”运算。m:I,n:I,结果类型同m |
IBCHNG(n,p) |
将整数n二进制表示右起第p位值取反。n:I,p:+I,p值域:0~64结果类型同n |
IBCLR(n,p) |
将整数n二进制表示右起第p位置0。n: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位置1。n:I,p:+I,p值域:0~64结果类型同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为负)移动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)* |
对二维数组(矩阵)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和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,大小=维数 |
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 |