linux运行如何同时两个fortran代码
在Linux系统上,如果你想同时运行两个Fortran(FORmula TRANslation)代码,你可以采取以下步骤:
编译两个Fortran程序: 首先,你需要将每个Fortran源文件分别编译成可执行文件。假设你有两个Fortran文件
program1.f90
和program2.f90
,可以使用gfortran编译器(对于现代版本的Linux):gfortran -o program1 program1.f90 gfortran -o program2 program2.f90
创建并打开两个终端窗口: 打开两个终端窗口,每个窗口对应一个程序。
在各自的终端中运行程序: 在第一个终端中,输入
./program1
然后按回车运行program1.f90
的可执行文件。同样,在第二个终端中输入./program2
运行program2.f90
。并发执行: Linux默认支持终端窗口之间的任务切换,因此你可以在不关闭任何一个程序的情况下,在另一个窗口中运行其他程序。只要它们不会相互依赖并且共享资源,就可以同时运行。
注意资源管理: 如果两个程序需要访问相同的硬件资源或数据文件,记得处理好并发操作,避免数据冲突。
linux ubuntu 安装fortran
安装GNU Fortran编译器
对于希望在Ubuntu Linux上安装Fortran编译器的用户来说,最简单的方法之一是通过系统的包管理器apt-get来安装GNU Fortran (gfortran) 编译器。这可以通过更新软件源列表并安装gfortran
包完成。
更新软件源列表
为了确保获取最新的软件包信息,在执行任何安装操作之前应当先刷新本地软件索引:
sudo apt update
安装GNU Fortran编译器
接着可以利用下面这条命令轻松地安装GNU Fortran编译器[^1]:
sudo apt install gfortran
一旦上述过程顺利完成,则意味着GNU Fortran编译器已经成功部署到了用户的Ubuntu环境中。
验证安装情况
为了确认新安装的Fortran编译器是否正常工作以及了解当前所使用的具体版本号,可输入如下指令进行检测[^4]:
gfortran --version
如果一切顺利的话,终端将会显示有关已安装的GNU Fortran编译器的信息及其详细的版本描述。
使用Intel Fortran Compiler (IFORT)
除了开源免费版的GNU Fortran之外,还有商业性质更强但也更为专业的Intel Fortran Compiler可供选择。针对后者而言,其安装流程相对复杂一些,通常涉及下载官方提供的安装程序、同意许可协议等一系列步骤之后才能正式开始设置环境变量等工作[^2]。
设置环境变量
当完成了基础安装环节后,还需要进一步配置shell会话中的环境变量以便能够正常使用该编译工具链。一种常见的做法是在个人用户的.bashrc
文件末尾追加一行用于调用初始化脚本的语句,例如:
echo 'source /opt/intel/bin/ifortvars.sh intel64' >> ~/.bashrc
此命令的作用在于每次启动新的shell实例时自动加载必要的库路径和其他依赖项,从而简化后续开发过程中可能遇到的各种麻烦事[^3]。
测试编译与运行简单的Fortran程序
创建一个名为hello.f90
的新文件,并向其中加入一段简单的“Hello World!”示例代码;保存更改后再回到命令行界面尝试对其进行编译链接处理,最后执行生成的目标文件即可观察预期效果。
gedit hello.f90
编写以下内容至打开后的编辑窗口内:
program HelloWorld
implicit none
write (*, *) 'Hello, world!'
end program HelloWorld
关闭并退出文本编辑器后继续按照提示依次键入下列两条命令分别负责编译和运行刚才建立的小项目:
ifort hello.f90 -o hello_world
./hello_world
此时应该可以在屏幕上看到由程序打印出来的问候语句,证明整个安装调试的过程均无误。
请根据上传文档内容,完成以下四个任务:1、给定两个已知序列,利用FORTRAN程序语言编写两个序列相加的程序;2、利用FORTRAN程序语言编写向前差分的程序;3、利用FORTRAN程序语言编写向后差分的程序;4、给出在vscode中利用GMT6.5画图的现代模式的代码
任务总结与实现步骤
1. 编写两个序列相加的FORTRAN程序
功能描述: 给定两个长度相同的序列 A
和 B
,输出它们对应的元素相加后的结果序列 C
。
代码示例 (fortran_add.f90):
program add_sequences
implicit none
integer, parameter :: n = 1000 ! 假设最大长度为1000
real :: a(n), b(n), c(n)
integer :: i, m
open(unit=10, file='input_a.dat', status='old')
do i = 1, n
read(10, *, end=1) a(i)
enddo
1 close(10)
open(unit=20, file='input_b.dat', status='old')
do i = 1, n
read(20, *, end=2) b(i)
enddo
2 close(20)
m = min(i-1,n) ! 实际读取的有效长度
do i = 1, m
c(i) = a(i) + b(i)
enddo
open(unit=30, file='output_sum.dat', status='replace')
do i = 1, m
write(30,'(f10.5)') c(i)
enddo
close(30)
end program add_sequences
2. 编写向前差分的FORTRAN程序
功能描述: 对输入序列进行向前差分运算,即对于每个位置i,计算y[i] = x[i+1] - x[i]
。
代码示例 (forward_diff.f90):
program forward_difference
implicit none
integer, parameter :: n = 1000
real :: x(n), y(n-1)
integer :: i, m
open(unit=10, file='input_x.dat', status='old')
do i = 1, n
read(10, *, end=1) x(i)
enddo
1 close(10)
m = i-2
do i = 1, m
y(i) = x(i+1) - x(i)
enddo
open(unit=30, file='output_forward_diff.dat', status='replace')
do i = 1, m
write(30,'(f10.5)') y(i)
enddo
close(30)
end program forward_difference
3. 编写向后差分的FORTRAN程序
功能描述: 对输入序列进行向后差分运算,即对于每个位置i,计算y[i] = x[i] - x[i-1]
。
代码示例 (backward_diff.f90):
program backward_difference
implicit none
integer, parameter :: n = 1000
real :: x(n), y(n-1)
integer :: i, m
open(unit=10, file='input_x.dat', status='old')
do i = 1, n
read(10, *, end=1) x(i)
enddo
1 close(10)
m = i-2
do i = 1, m
y(i) = x(i+1) - x(i)
enddo
! 调整索引以匹配向后差分定义
do i = 1, m
y(i) = x(i) - x(i-1)
enddo
open(unit=30, file='output_backward_diff.dat', status='replace')
do i = 1, m
write(30,'(f10.5)') y(i)
enddo
close(30)
end program backward_difference
4. 使用GMT6.5绘图的VSCode配置及命令行指令
环境准备:
- 安装 GMT6.5 及相关依赖项
- 配置 VSCode 终端环境变量以便调用 gmt 指令
绘图脚本 (plot.sh):
#!/bin/bash
gmt begin waveform ps
# 设置页面布局
gmt set FONT_ANNOT_PRIMARY 12p
gmt set FORMAT_FLOAT_OUT %.1f
# 绘制原始波形
gmt plot input_a.dat -Wthinner,red --FORMAT_FLOAT_OUT=%.1f -R0/100/-1/1 -JX15c/8c -Bxaf+l"Time" -Byaf+l"Amplitude"
gmt plot input_b.dat -Wthinner,blue -R -J -O
gmt plot output_sum.dat -Wthinner,black -R -J -O
# 添加标题等装饰性元素
gmt text -DjTC-0.5c/0.2c -F+f16p,Helvetica-Bold+jCB -R -J -O <<EOF
Original and Summed Waveforms
EOF
gmt end show
注意事项:
- 上述所有文件路径需要根据实际存储情况进行调整;
- 在执行上述程序之前,请确保已经正确安装了Fortran编译器(如gfortran)以及GMT工具包,并且能够在命令行环境下正常运行;
- 如果使用Windows系统,则需将批处理脚本(.sh)转换成适合的形式或者直接通过Git Bash等Linux模拟器来运行这些脚本。
相关推荐
















