Fortran新手:如何在Geany中编译/构建多个Fortran文件

问题描述

我是Fortran的新手,并且正在使用Geany IDE。我正在查看一些旧的Fortran 90,目的是将其转换为MATLAB。我正在简化问题,这可能是一个非常简单的新手Fortran问题,但我似乎在网上找不到任何解释。

比方说,我有一个名为“ simple_program.f”的主程序。

  program simple_program

  integer b  
  logical check
  
  call get_a(a)
  
  b = 2
  
  check = a < b
  
  write(*,*) check
  
  
  end

此主程序从另一个名为“ a_in.f”的程序文件调用一个名为“ get_a”的子程序,如下所示:

  subroutine get_a(a)

    integer a
  
    a = 1
  
  return
  end

当我尝试在Geany中编译simple_program.f时,在生成“未定义对'get_a'的引用”时出现错误。如果我尝试在Geany中编译a_in.f,则会出现错误“未定义对'WinMain'的引用”。

三个问题:

  1. 如何链接“ simple_program.f”和“ a_in.f”以告诉Geany一起编译它们?从网上看,我似乎必须使用一个makefile,但是(我认为)Geany文档在解释“ Build”菜单的工作方式方面表现得很差。

  2. Fortran的文件只能包含子例程吗?如果是这样,那如何运作?文件a_in.f没有“主”程序,它仅包含一个子例程。但是自从有了可执行文件以来,我正在查看的脚本显然已经编译过了。

  3. 如果它们是从其他文件的子例程输出的,则不必在主程序文件的顶部显式定义所有变量吗?主程序(simple_program.f)没有定义变量“ a”,我感到惊讶,因为我认为Fortran必须定义所有变量。

感谢您为解决这些问题提供的帮助。请假设我知道的很少。以及所有有用的初学者资源也将受到赞赏。

欢呼

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)