在线 Fortran 编译器
在浏览器中编写、编译并运行 Fortran 代码,适合学习、练习与快速验证。
Fortran 代码编辑器
输出
标准输出(stdout)
标准错误(stderr)
执行信息
退出码:
运行状态:
使用说明
- 在左侧编辑器编写 Fortran 90/95 代码(例如以
program开头,以end program结束)。 - 点击“运行代码”即可在线编译并执行程序。
- 右侧面板展示输出与错误信息。
- 绿色区域为标准输出(例如
print *输出)。 - 红色区域为编译/运行错误与警告。
- 执行信息包含退出码与运行状态。
- 快捷键:
Ctrl+Enter(Mac 上为Cmd+Enter)。
Fortran 基础
基本结构:
program main
print *, "Hello, Fortran!"
end program main
print *, "Hello, Fortran!"
end program main
常见语法:
integer/real/logical/character(len=..)if ... then ... else ... end ifdo/end do循环contains与function/subroutine
数组与循环
示例:
program arrays
integer :: i
integer, dimension(5) :: a = [3,7,1,9,4]
integer :: maxv
maxv = a(1)
do i = 2, size(a)
if (a(i) > maxv) maxv = a(i)
end do
print *, "Maximum:", maxv
end program arrays
integer :: i
integer, dimension(5) :: a = [3,7,1,9,4]
integer :: maxv
maxv = a(1)
do i = 2, size(a)
if (a(i) > maxv) maxv = a(i)
end do
print *, "Maximum:", maxv
end program arrays
过程与函数
函数示例:
program proc_demo
implicit none
print *, add(2,3)
contains
integer function add(a,b)
integer, intent(in) :: a,b
add = a + b
end function add
end program proc_demo
implicit none
print *, add(2,3)
contains
integer function add(a,b)
integer, intent(in) :: a,b
add = a + b
end function add
end program proc_demo
常见问题
支持哪些 Fortran 标准?
通常支持 Fortran 90/95 等常见标准,具体实现以后端环境为准。
可以使用第三方库吗?
可使用标准语法与内建特性。由于运行在沙箱中,第三方系统库/网络访问不可用。
运行是否有时间限制?
有。为避免死循环并保证公平使用,编译/运行都有时间限制,超时会自动终止。
可以保存代码吗?
暂不支持在线保存。建议将重要代码复制到本地,或使用收藏夹/笔记工具保存片段。
运行时可以交互输入吗?
当前不支持交互式输入(如 read * 等)。如需测试,可将测试数据写死在代码中,或用固定数据替代。
示例程序(点击上方运行)
1. 迭代计算阶乘
program factorial
integer :: i, n, acc
n = 5; acc = 1
do i = 2, n; acc = acc * i; end do
print *, "5! =", acc
end program factorial
integer :: i, n, acc
n = 5; acc = 1
do i = 2, n; acc = acc * i; end do
print *, "5! =", acc
end program factorial
2. 一维数组求和
program sum_array
integer, dimension(5) :: a = [1,2,3,4,5]
integer :: total
total = sum(a)
print *, "sum =", total
end program sum_array
integer, dimension(5) :: a = [1,2,3,4,5]
integer :: total
total = sum(a)
print *, "sum =", total
end program sum_array