fortran的subroutine里不用定义变量类型吗? 10
最近在编abaqus里的子程序,突然发现在子程序里,无论用什么变量,都不用声明类型也能直接赋值,这是怎么回事?...
最近在编abaqus里的子程序,突然发现在子程序里,无论用什么变量,都不用声明类型也能直接赋值,这是怎么回事?
展开
1个回答
2020-04-06
展开全部
fortran有默认的变量类型,也就是隐含声明。从字幕i到n开头的变量,默认为整数类型integer,长度为编译器默认的,一般为4,也就是 integer*4。其它字母开头的变量默认为实数类型 real,长度也是编译器默认的,一般为4,也就是 real*4。你可以在程序开头用 implicit none 语句声明来取消默认的变量类型,自己重新声明。subroutine 子程序过程里,也是遵从上述规则。
如果你使用的变量名符合默认的变量类型规则,并且没有使用 implicit none 语句,那么无论是主程序还是子程序(包括 subroutine 和 function)都可以直接使用默认规则,直接使用。例如: a=5,实际上是 a=5.0;k=5.678,实际上是 k=5。表达式计算过程和结果也是按照默认变量类型来处理。
使用默认变量类型的规则,好处是间接方便。但是,变量多了,比如打到上百个,容易发生类型弄错,导致调试困难。因此,也有程序员建议,使用 implicit none 语句,重新定义所有变量,便于调试和查找错误。
供你参考。
如果你使用的变量名符合默认的变量类型规则,并且没有使用 implicit none 语句,那么无论是主程序还是子程序(包括 subroutine 和 function)都可以直接使用默认规则,直接使用。例如: a=5,实际上是 a=5.0;k=5.678,实际上是 k=5。表达式计算过程和结果也是按照默认变量类型来处理。
使用默认变量类型的规则,好处是间接方便。但是,变量多了,比如打到上百个,容易发生类型弄错,导致调试困难。因此,也有程序员建议,使用 implicit none 语句,重新定义所有变量,便于调试和查找错误。
供你参考。
追答
更正两个文字错误:
字幕 => 字母
间接 => 简捷
大雅新科技有限公司
2024-11-19 广告
2024-11-19 广告
这方面更多更全面的信息其实可以找下大雅新。深圳市大雅新科技有限公司从事KVM延长器,DVI延长器,USB延长器,键盘鼠标延长器,双绞线视频传输器,VGA视频双绞线传输器,VGA延长器,VGA视频延长器,DVI KVM 切换器等,优质供应商,...
点击进入详情页
本回答由大雅新科技有限公司提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询