这是代码:
Program Submodules_0
Use Const_Var
Use Baz_Var
Implicit none
Call Pro_Baz
End Program Submodules_0
Module Const_Var
Implicit none
Integer::i
Integer,parameter::Br_NaNi=3
Real,parameter::S_baz=3.15E+06
Real,parameter,dimension(Br_NaNi)::V_baz=[110.0E+03,20.0E+03,0.40E+03]
Real,dimension(Br_NaNi)::I_baz,Z_baz,Y_baz
End module Const_Var
Module Baz_Var
Use Const_Var
Implicit none
Interface
Module subroutine Pro_Baz
End subroutine Pro_Baz
End interface
End module Baz_Var
Submodule(Baz_Var) Baz_Var_Main
Contains
Subroutine Pro_Baz
Implicit none
Do concurrent(i=1:Br_NaNi)
I_baz(i)=(S_baz)/((sqrt(3.0))*V_baz(i))
Z_baz(i)=(V_baz(i)**2)/(S_baz)
Y_baz(i)=1/(Z_baz(i))
End Do
Return
End Subroutine Pro_Baz
End submodule Baz_Var_Main
我想创建包含子程序Pro_Baz的子模块,当我启动这个程序时,我得到了一条消息:
错误:无法分类的陈述
消息在这一行:模块子程序Pro_Baz
这个程序有什么问题?
答案 0 :(得分:0)
在version 6.0的gfortran中引入了对子模块的编译器支持。
在接口块中,以module subroutine ...
开头的接口主体特定于子模块工具。因此,对该接口主体的无法分类的声明的抱怨表明缺乏对子模块的理解。编译器没有等到达到submodule
语句时抱怨。
与Code :: Blocks 16.01 appears to be 4.9.2捆绑在一起的gcc / gfortran版本。
您需要安装并配置IDE以使用更新版本的编译器。这是您使用带有捆绑默认编译器的Windows版本,还是使用单独编译器安装的任何操作系统上的版本。