fortran中的各种内置函数

fortran和其他编程语言一样包含了各种内置的函数接口供使用者调用

我在使用过程中遇到各种内置函数,会在此记录和简单介绍

2018.10.24

1.trim(string)

函数功能:舍去字符串尾部的空格,并返回剩余部分。

character(len=10) ::str
str = "leo     "
write(*,"(a,a)") str,"***"
write(*,"(a,a)") trim(str), "***"

输出结果

leo     ***
leo***

2.nint(x[,kind])

函数功能:将x转换为整数(四舍五入),即取最接近的整数。中括号内表示可选参数

3.nullify(p)

函数功能:将指针p置空,相当于c/c++里的 "p = NULL"

real,target::a
real,pointer::p1,p2
p1=>a,p2=>a    !p1,p2都指向a
nullify(p1)    !p1为空,p2仍指向a
p2=>p1         !p1与p2都为空指针

注:这里容易和释放p的内存混淆,释放内存是deallocate(p),和分配内存allocate相对应

4.present(param)

函数功能:判断某些可忽略的参数是否指定了

比如一个子程序 subroutine sub(a,b,c)
其中,c是可选参数:real , optional :: c
那么调用时,可以 call sub(a,b,c) 也可以 call sub(a,b)
前一种情况,present(c) 就是真,对于后一种情况,present(c) 就是假,因为没有传入c

2018.10.29

5.size(array[,dim])

函数功能:返回数组在指定维上的长度
如有一个10个元素的一维数组a,size(a) 得到的就是10
如果是二维数组b(i,j)
size(b,1) = i
size(b,2) = j
size(b)    = i * j

6.mod(A1,A2)

函数功能:求A1对A2的取余的余数
如:
if(mod(a,2) .eq. 0 )
print*,a,"是偶数"
如果a是偶数则会打印

7.index(string,substring[,back])

函数功能:返回substring在string中出现的位置
STRING:必须是字符型
SUBSTRING:必须是字符型
BACK:可选的,逻辑型
如果没有出现BACK选项或者BACK的值是.FALSE.,结果是I的最小值,其中I满足下式STRING (I : I + LEN (SUBSTRING) - 1) = SUBSTRING 如果I不存在则返回零值。如果LEN (STRING) < LEN (SUBSTRING)也返回零值。如果LEN (SUBSTRING) = 0.返回1
如果BACK的值为 .TRUE., 结果是I的最大值,其中I满足STRING (I : I + LEN (SUBSTRING) - 1) =  SUBSTRING ,I不存在时返回0。如果LEN (STRING) < LEN (SUBSTRING)返回0 ,如果 LEN (SUBSTRING) = 0返回LEN (STRING) + 1
示例:
INDEX ('FORTRAN', 'R', BACK = .TRUE.) 返回 5
INDEX ('FORTRAN', 'R') 返回 3

2018.10.29

8.abs(x)

函数功能:求x的绝对值
示例:
    integer :: a = -4,b = 0
    b = abs(a)              ! b此时等于4

9.maxmin(x1,x2,x3···)

函数功能:求x1,x2,x3,···中最大(小)值,x为任意类型,结果类型同x
示例:
integer res
res = min(1,2,5,12,7)          ! 结果是1

10.BTEST(n,p)       |      ITEST(n,p)

函数功能:btest--判定整数n的二进制表示右起第p位是否为1;
                  itest--将整数n二进制表示右起第p位置1

2018.11.01

11.precision(x)                              

函数功能:查询x类型有效数字位数
 

12.range(x)                                   

函数功能:查询x类型的指数范围
 

  • 13
    点赞
  • 90
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值