fortran子程序

fortran子程序

子程序(subroutine)是 Fortran 中用于封装可重复使用逻辑块的机制。与主程序类似,但不作为整个程序的入口,而是被主程序或其他子程序调用以完成特定任务。子程序可以带有多个输入/输出参数,还可以不返回值。示例:

program main_external
  implicit none                    ! 禁用隐式类型
  integer :: x, y                   ! 声明两个整型变量
  x = 3                             ! 为 x 赋值
  y = 2                             ! 为 y 赋值
  call multiply(x, y)               ! 调用 multiply 子程序
  print *, 'Done.'                  ! 打印标志表示程序结束
contains                            ! 在同一文件中定义内部子程序
  subroutine multiply(i, j)
    integer, intent(in) :: i, j     ! 声明输入参数均为整型,只读
    integer :: result               ! 局部变量用于存储乘积
    result = i * j                  ! 计算乘积
    print *, i, '和', j, '的积为', result
    ! 也可以直接写:print *, i, '和', j, '的积为', i*j
  end subroutine multiply           ! 子程序结束
end program main_external
  • subroutine multiply(i, j):定义名为 multiply 的子程序,带有两个输入参数 ij
  • integer, intent(in) :: i, j:声明 ij 为整型,只读(intent(in))。
  • contains:将子程序嵌入到主程序中,该子程序对外部不可见,仅供本主程序调用。
  • 子程序可以不返回任何值,而是通过参数或全局变量传递结果;若需要返回单一值,应使用 function