codecamp

Fortran 函数副程序

函数副程序,这个称呼不一定十分准确,实际上就是其他编程语言中常用的函数。在某种程度上,函数只是子程序的替代,但是对于 Fortran 来说,函数必须将函数名作为变量进行声明,并将计算的结果赋给这个函数名同名变量。一个完整的例子如下示例 8 所示。

函数副程序只能返回一个结果,而子程序可以返回多个结果。所以如果只是用来计算某个公式或者求解某个结果,可以优先采用函数副程序。如果需要同时返回多个变量,则优先采用子程序。
!!! 示例 8
function square(x)
implicit none
real square, x ! 声明函数名同名变量
square = x*x ! 将计算结果赋给函数名同名变量
end function square

program ftest1
implicit none
real x, y, square ! 声明使用的函数名同名变量
x = 4.0
y = 3.0*square(x+1.0) + 50.5
print *, x, y
end program ftest1

!!! 执行结果
>>> 4.00000000 125.500000

Fortran 中的函数使用需要严格遵守函数名同名变量在主程序和函数中的相同类型声明,否则就无法通过编译。


Fortran 二维数组变量
Fortran 全局变量
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }