VS下编译Fortran

VS下编译Fortran

VS安装及MKL数学库

参考博客
https://www.liangzl.com/get-article-detail-161716.html
完成Intel Parallel Studio XE 2020的安装,在这个环境下可以编译Fortran

如果需要用到数学库,记得勾选MKL,并在之后参考博客
http://www.guanjihuan.com/archives/3021
完成配置。

  1. 项目 → \rightarrow ‘工程文件名’属性 → \rightarrow 配置属性 → \rightarrow Fortran → \rightarrow Libraries → \rightarrow Use Intel Math Kernal Library选中Parallel 或者 Sequential,以及Use Common Windows Libraries选中Yes

  2. 项目 → \rightarrow ‘工程文件名’属性 → \rightarrow 配置属性 → \rightarrow Linker → \rightarrow Input → \rightarrow Additional Dependencies → \rightarrow 填入 mkl_intel_c.lib mkl_intel_thread.lib mkl_lapack95.lib mkl_blas95.lib 因为找不到那些文件,我在这改成了:
    mkl_intel_thread.lib mkl_lapack95_lp64.lib mkl_blas95_lp64.lib
    其中lapack包就是处理线性方程组问题的包,可以参考lapack官方文档
    BLAS(Basic Linear Algebra Subprograms)也是一个基本的数学包,里面涉及到的函数可以参考Intel MKL的网站

配置完之后应该是可以运行的,这里附上两段参考代码:

program gdemo1
    use lapack95
    implicit none    
    
    !geev
    real*8 :: a(4,4)=(/ 1.0,3.2,5.0,7.9,2.,4.3,6.,8.,9.4,10.,11.,12.,2.,5.,6.,9. /)
    real*8 :: wr(4),wi(4),vr(4,4),vl(4,4) ! wr和wi分别为特征值实部和虚部,vr和vl分别为右和左特征向量
    
    call geev(a,wr,wi,vl,vr)
    write(*,*) wr
    write(*,*) wi

  stop
end
program test_mkl
      !USE mkl95_LAPACK, ONLY: GETRF, GETRS
      USE lapack95

      IMPLICIT NONE
      REAL(KIND = 8), DIMENSION(3, 3) :: A
      REAL(KIND = 8), DIMENSION(3) :: B
      INTEGER, DIMENSION(3) :: IPIV
      INTEGER :: INFO, I

      DATA A/1,6,9,6,5,2,8,3,4/
      DATA B/2,4,7/

      PRINT '(3F5.1)', (A(I, :), I=1,3)  ! 这个才能 输出真实的A的样子
      PRINT '(F5.1)' , B ! 输出一个列向量

      CALL GETRF(A, IPIV, INFO)
      IF(INFO.NE.0) THEN
          PRINT *, "THERE IS SOMETHING WRONG WITH THE MATRIX: ", INFO
      ENDIF
      CALL GETRS(A, IPIV, B, 'N', INFO)
      IF(INFO.NE.0) THEN
          PRINT *, "THERE IS SOMETHING WRONG: ", INFO
      ENDIF

      PRINT *, ""
      PRINT '(3F6.2)', B
end

也可以参考网站
http://fcode.cn/guide-58-1.html

关于VS编译器的一些常用操作

内存不足
如果遇到编译器报错“insufficient virtual memory”可以参考网站,但是一般情况下是用不到的,没太大必要,最重要的还是查看自己程序里面有没有开辟过大内存的情况,比如allocate(a(BigNum)),当这个BigNum特别大的时候就会报错。

爆栈
也就是编译的时候报错“Stack Overflow”,这个一般比较好的处理方式就是用动态数组代替一般的数组,把那些长长的数组全部用allocate来代替,用完记得及时的释放deallocate。
当然还有一个方法就是扩大堆栈的容量,在VS编译器里选择:
项目 → \rightarrow ‘工程文件名’属性 → \rightarrow 配置属性 → \rightarrow Linker → \rightarrow System → \rightarrow Stack Reverse Size & Stack Commit Size给一个较大的数(上限是268435456)
这里给的数值的含义为:
1MB: 1048576 Byte
10MB: 10485760 Byte
64MB: 67108864 Byte
100MB: 104857600 Byte
128MB: 134217728 Byte
256MB: 268435456 Byte (MAX)

  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 在Linux下编译和运行Fortran程序,需要先安装Fortran编译器,比如gfortran。安装完成后,可以使用命令行工具进入Fortran程序所在的目录,然后使用以下命令进行编译: gfortran -o program_name program_name.f90 其中,program_name是程序的名称,program_name.f90是程序的源代码文件。编译完成后,可以使用以下命令运行程序: ./program_name 程序将会在终端中输出结果。 ### 回答2: Fortran是一种高级程序设计语言,通常用于科学计算和工程领域。Linux系统是一个常用的操作系统,具有开源、稳定、灵活等优点,因此在Linux上编译运行Fortran是非常常见的需求。 在Linux环境下,Fortran编译器有多种选择,如gfortran、ifort等,其中gfortran是一个开源的编译器,可在终端命令行直接安装,具有使用方便、易学易用等特点。以下是在Linux上编译运行Fortran的基本方法: 1.安装gfortran 在终端命令行输入以下命令: sudo apt-get install gfortran 2.编写Fortran程序 使用文本编辑器编写Fortran程序,保存为.f90文件格式。例如: program hello print *, 'Hello, World!' end program hello 3.编译Fortran程序 在终端命令行中进入保存程序文件的目录,输入以下命令: gfortran -o hello hello.f90 其中,-o选项指定编译生成的可执行文件名为hello,hello.f90为源程序文件名。 4.运行程序 在终端命令行中输入以下命令: ./hello 即可运行编译生成的可执行文件。 以上是在Linux下编译运行Fortran的基本方法,但实际使用中需要根据具体情况进行调整,例如设置编译选项、调试程序等。对于复杂的Fortran程序,还需要实现模块化、性能优化等进一步的处理。需要注意的是,在不同的Linux发行版中,可能需要下载安装不同的Fortran编译器或库文件,具体操作方法可以查看官方文档或社区讨论。 ### 回答3: Fortran是一种高级编程语言,特别适用于科学计算和工程计算。Linux是一种自由和开源的操作系统,它提供了很多方便的工具和环境来编译和运行Fortran程序。下面是一些基本的步骤: 1. 安装Fortran编译器。Linux一般自带GNU Fortran编译器(gfortran),如果没有安装可以通过以下命令进行安装:sudo apt-get install gfortran。这个命令会自动安装最新版本的gfortran和相应的库文件。 2. 编写Fortran程序。可以用任何文本编辑器编写Fortran程序,比如vim、nano、gedit等等。在编辑器里编写好后,将文件保存到一个方便的位置,比如~/fortran/中。 3. 编译Fortran程序。在终端中使用以下命令进行编译:gfortran -o <可执行文件名> <源代码文件名>。比如,如果源代码文件为hello.f90,可执行文件名为hello,那么编译的命令为:gfortran -o hello hello.f90。如果编译成功,会生成一个可执行文件hello。 4. 运行Fortran程序。在终端中使用以下命令运行:./<可执行文件名>。比如,如果可执行文件名为hello,那么运行的命令为:./hello。 总之,编译和运行Fortran程序在Linux操作系统下非常方便,只需要安装好编译器,编写好程序,然后使用简单的命令即可。Fortran在科学计算和工程计算中有着广泛的应用,掌握好在Linux下编译和运行Fortran程序对于学习和工作都非常有帮助。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值