• fortran90_intent属性


    INTENT属性

    哑实结合是在两个程序单元间传递数值的主要手段,主程序中实元2.0与过程中哑元X结合,就使X有值2.0,也即把主程序中2.0的值传递给子程序中的X,该值可供子程序运算。反之,如果子程序中的变量Y在子程序执行完后有值3.0,它与实元R结合后则使调用程序单元中的实元变量R得值3.0。

    在F77中,不能确切地说明哑元的目的。它们到底是用于把数据传入到过程中的,还是用于把数据传出到调用它的程序单元中的,或是两者兼而有之的,这个概念是含糊的。在F90中,为了避免当过程内部变量值变化后返回到引用的程序单元时可能造成的混淆情况,在过程的变量类型的定义中,可以对哑元指定意图说明的INTENT属性。哑元按数据传输特性可分为输入输出两用、仅用于输入和仅用于输出。其一般形式为:

    在类型定义语句中:类型,INTENT(意图说明符) :: 哑元名表

    或用INTENT语句 :INTENT(意图说明符) :: 哑元名表

    意图说明符为以下字符串:

    IN 指明哑元仅用于向过程提供数据,过程的执行期间哑元不能被重定义或成为未定义的,相联合的实元可以是常数、变量、数组以及它们的算术表达式。

    OUT 指明哑元用于把过程中的数据传回调用过程的程序,与之相结合的实元只允许是变量,不得为常数或算术表达式。

    INOUT 指明哑元既可以用于向过程提供数据,也可用于向调用程序返回数据,与之相结合的实元只允许是变量。

    INTENT属性不能在主程序说明语句中出现,只能在过程的哑元说明语句中使用。它是可选的,可省略。但现代特性的编程中应提倡使用INTENT属性,因为这样能增加可读性和可维护性,还能防止编程中的一些错误。因为一旦哑实结合,哑元和实元始终是同一个值,如果过程中给有属性INTENT(IN)的哑元重新赋值,也将改变调用程序单元中实元的值,而这是不应该的。这样,如在程序执行部分中误把有INTENT(IN)属性的哑元赋值时,操作系统就会提示。

  • 相关阅读:
    利用KubeEdge在A500部署边缘推理任务
    HTTPS详解一
    go语言单元测试:go语言用gomonkey为测试函数或方法打桩
    优秀程序员的十个习惯
    Linux基础
    材料科学笔记
    六级作文:图表类作文
    六级作文:名言警句类论说文
    六级写作:考试介绍 & 万能模板句型 & 练习
    数据分析师能力一:收集信息的能力
  • 原文地址:https://www.cnblogs.com/guosj/p/3755285.html
Copyright © 2020-2023  润新知