Fortran中function,subroutine, interface和module的简单使用
生活随笔
收集整理的這篇文章主要介紹了
Fortran中function,subroutine, interface和module的简单使用
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
代碼運行在simply fortran2下,復制,粘貼可直接運行看效果
!!!!!------------------- ! Fortran中函數分兩類:子程序(subroutine)和自定義函數(function)。 ! 自定義函數本質上就是一般數學上的函數,一般要傳遞自變量給自定義函數,返回函數值。 ! 子程序不一定是這樣,可以沒有返值也可以多個返回值。 ! func能做到的事,sub一定能做到。 ! 傳遞參數要注意類型的對應,這跟C是一樣的。 !!!!!-------------------!!!!!!!!! ! Module不是函數。它用于封裝程序模塊,一般是把具有相關功能的函數及變量封裝在一起 ! 。用法很單,但能提供很多方便,使程序變得簡潔,比如使用全局變量不必每次都聲明一長串, ! 寫在odule里調用就行了。Module一般寫在主程序開始之前。 !!!!!!!!!program helloworld use opModule ! 在主程序或函數中使用時,需要在聲明之前先寫上一行: ! use module_name. implicit nonereal(kind = 4):: a = 2.0, b = 3.0, add_result = 0.0interface ! 聲明函數調用接口,sub無需聲明可直接調用real(kind=4) function add_func(a, b)implicit nonereal(kind=4) :: a, bend function add_func end interface! 注意sub的調用方式 call subname(╬aram1, ...)call add_sub(a, b, add_result) Print *, "Hello World!", add_result, add_func(a, b)call prtHi()print*, M_add_func(2.3, 4.3), M_resultend program helloworldsubroutine add_sub(a, b, add_result) implicit none real(kind=4) :: a, b, add_resultadd_result = a + b;end subroutine add_subreal(kind=4) function add_func(a, b) implicit none real(kind=4) :: a, badd_func = a + bend function add_func!!!!!! ! Module中有函數時必須在contains命令之后(即在某一行寫上contains然后下 ! 面開始寫函數)。并且module中定義過的變量在module里的 ! 函數中可直接使用,函數之間也可以直接相互調用(包括主程序或其他包含module的子函數中), ! 連module中的自定義函數在被調用時也不用先聲明。 !!!!!! module opModulereal(kind = 4) :: M_result containssubroutine prtHi()implicit noneprint *, 'hello fortran, hello 2016.11.16 10:55'end subroutine prtHireal(kind=4) function M_add_func(a, b)implicit nonereal(kind=4) :: a, bM_result = a + bM_add_func = M_resultend function M_add_funcend module opModule總結
以上是生活随笔為你收集整理的Fortran中function,subroutine, interface和module的简单使用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ROB 第一篇 DFS BFS (寻迹
- 下一篇: Maven学习记录之依赖问题 Missi