日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Fortran中subroutine和function的区别

發布時間:2023/12/20 编程问答 47 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Fortran中subroutine和function的区别 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

https://www.cnblogs.com/qianjiashi/articles/13667334.html

二者均是被program調用,完成一定的任務,但是二者有明顯的不同:
1. subroutine不需要在program中聲明,但是在調用時必須用Call命令;與此相反,function必須在program中聲明,在調用時不用任何命令,因為函數名本身就是命令
2. subroutine可以不返回什么結果,但是function必須返回計算結果

附:
???function聲明格式, real, external :: function_name??!聲明function_name 是個函數,返回結果是real類型。
??在函數定義中也必須指定function_name的數據類型,比如:

???function_name(a1, a2, a3, ....)
???......
???real :: function_name
???.....

???end

3. 使用function有一個“不成文的規定”,就是:“傳遞給函數的參數,只要讀取它的數值就好了,不要去改變它的數據”。雖然在語法上可以改變輸入它的數據,但是輸入函數的參數就是所謂的“自變量”,而函數返回的值是“應變量”。“自變量”是自由變化的,它的值應該不會在使用函數的過程中被改變。如果想要改變輸入的參數時,最好使用子程序,而不是使用函數來完成這個工作。

?

DOUBLE PRECISION FUNCTION D1MACH(I) C C DOUBLE-PRECISION MACHINE CONSTANTS C C D1MACH( 1) = B**(EMIN-1), THE SMALLEST POSITIVE MAGNITUDE. C C D1MACH( 2) = B**EMAX*(1 - B**(-T)), THE LARGEST MAGNITUDE. C C D1MACH( 3) = B**(-T), THE SMALLEST RELATIVE SPACING. C C D1MACH( 4) = B**(1-T), THE LARGEST RELATIVE SPACING. C C D1MACH( 5) = LOG10(B)

SUBROUTINE FDUMP C***BEGIN PROLOGUE FDUMP C***PURPOSE Symbolic dump (should be locally written). C***LIBRARY SLATEC (XERMSG) C***CATEGORY R3 C***TYPE ALL (FDUMP-A) C***KEYWORDS ERROR, XERMSG C***AUTHOR Jones, R. E., (SNLA) C***DESCRIPTION

?

總結

以上是生活随笔為你收集整理的Fortran中subroutine和function的区别的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。