首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何定义与外部子例程同名的Fortran子例程?

在Fortran中,如果要定义与外部子例程同名的子例程,可以使用INTERFACE关键字来声明外部子例程的接口。接口声明可以包含子例程的名称、参数列表和返回类型。通过这种方式,编译器可以区分同名的子例程,并正确地链接它们。

下面是一个示例代码:

代码语言:txt
复制
INTERFACE
    SUBROUTINE external_subroutine(arg1, arg2)
        INTEGER, INTENT(IN) :: arg1
        REAL, INTENT(OUT) :: arg2
    END SUBROUTINE external_subroutine
END INTERFACE

SUBROUTINE external_subroutine(arg1, arg2)
    INTEGER, INTENT(IN) :: arg1
    REAL, INTENT(OUT) :: arg2
    ! 在这里实现子例程的功能
END SUBROUTINE

在上面的示例中,INTERFACE块声明了外部子例程external_subroutine的接口,包括参数列表和返回类型。然后,在接口声明之后,可以定义与外部子例程同名的子例程,并在其中实现具体的功能。

需要注意的是,接口声明和子例程定义之间的参数列表和返回类型必须一致,否则会导致编译错误。

对于Fortran的云计算相关问题,腾讯云提供了一系列的产品和服务,例如云服务器、云数据库、云存储等。您可以访问腾讯云官方网站(https://cloud.tencent.com/)了解更多关于腾讯云的信息和产品介绍。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

ABAP 模块化编程概念详解

类型: 内部例程:内部例程源代码调用程序位于同一个ABAP程序 中 外部例程外部例程源代码位于另外ABAP程序中,而不是位于调用程序内部。...注意: 例程中应避免使用主程序变量,应使用参数 在例程定义变量,只在例程中有效 例程定义方式 例程定义方式 例程定义方式: 以FORM开头、以 ENDFORM 结尾...: 在主程序中定义变量 这些变量在整个主程序和调用每个子例程中均可见(可进行处理) 局部变量: 在例程定义变量称作局部变量, 这些变量只存在于相关例程中(形式参数相同),只能在例程中使用...注意: 当全局变量和局部变量同名时,在例程中局部变量起作用,而全局变量值不改变。..."INCREMENT为宏名称。 ...... END-OF-DEFINITION. 例程不同是,宏通过&N(N为索引)接收传入参数,不需要定义接收参数类型及格式。

1.5K21

【SQL国际标准】ISOIEC 9075:2023 系列SQL国际标准详情

在该等效编译单元中,每个嵌入 SQL 语句都已替换为一个或多个宿主语言语句,其中一些语句调用外部调用 SQL 过程,该过程在执行时具有执行 SQL 语句等效效果; — 用于直接调用 SQL...和 数据库语言包括以下功能。 —用于指导控制流语句规范。 —将表达式结果分配给变量和参数。...它还包括信息架构表定义,这些表包含 SQL 服务器模块和 SQL 调用例程相关架构信息。 ISO/IEC 9075-5至8官网暂无此内容。...—SQL 数据结构和完整性约束。 — SQL 数据相关安全和授权规范。 —ISO/IEC 9075 系列功能和功能,以及每个在 SQL 实现中支持。...SQL调用例程能力,并使用Java编程语言定义类作为SQL结构化用户自定义类型。

35700
  • Architecture of SQLite

    这里信息对于那些想理解或修改SQLite内部工作的人很有用。 附近图表显示了SQLite主要组件以及它们如何进行互操作。 下面的文本解释了各种组件角色。 ?...为了避免名称冲突,SQLite库中所有外部符号都以前缀sqlite3开头。那些用于外部使用符号(换句话说,那些构成SQLiteAPI符号)添加了下划线,因此以sqlite3开头。...attach.c、delete.c、insert.c、select.c、trigger.c update.c和vacuum.c文件处理同名SQL语句代码生成。...vdbe.h头文件定义了虚拟机SQLite库和vdbeInt.h其余部分之间接口,后者定义了虚拟机本身私有的结构和接口。其他各种vdbe*.c文件是虚拟机帮助程序。...utf.c源文件包含Unicode转换例程。SQLite在printf.c中有自己printf()私有实现(带有一些扩展),在random.c中有自己伪随机数生成器(PRNG)。

    1.4K30

    如何在父进程中读取(外部)进程标准输出和标准错误输出结果

    最近接手一个小项目,要求使用谷歌aapt.exe获取apk软件包中信息。依稀记得去年年中时,有个同事也问过我如何获取被调用进程输出结果,当时还研究了一番,只是没有做整理。...但是,实际情况并不是我们想那么简单。比如我文前提到问题:别人提供了一个Console控制台程序,我们将如何获取其执行输出结果呢?...它是我们启动进程时,控制进程启动方式参数。...我们之后将hWrite交给我们创建进程,让它去将信息写入管道。而我们父进程,则使用hRead去读取进程写入管道内容。...,外部一定要释放这段空间以免造成内存泄露。

    3.9K10

    Python 异步: 协程(4)

    现在我们对什么是协程有了一些了解,让我们通过将它们与其他熟悉编程结构进行比较来加深这种理解。 2. 协程例程例程例程”和“例程”在现代编程中通常指的是同一事物。...也许更准确地说,例程是程序,而例程是程序中函数。例程例程。它是一个离散表达式模块,它被分配了一个名称,可以接受参数并可以返回一个值。...协程生成器 生成器是一种可以暂停其执行特殊函数。生成器函数可以像普通函数一样定义,尽管它在暂停执行并返回值时使用 yield 表达式。...协程任务 例程和协程可能代表程序中“任务”。但是,在 Python 中,有一个称为 asyncio.Task 对象特定对象。...协程线程 协程比线程更轻量级。 Thread:协程相比重量级 Coroutine:线程相比是轻量级。 协程被定义为一个函数。

    62430

    Python 异步: 协程(4)

    现在我们对什么是协程有了一些了解,让我们通过将它们与其他熟悉编程结构进行比较来加深这种理解。2. 协程例程例程例程”和“例程”在现代编程中通常指的是同一事物。...也许更准确地说,例程是程序,而例程是程序中函数。例程例程。它是一个离散表达式模块,它被分配了一个名称,可以接受参数并可以返回一个值。...协程生成器生成器是一种可以暂停其执行特殊函数。生成器函数可以像普通函数一样定义,尽管它在暂停执行并返回值时使用 yield 表达式。...协程任务例程和协程可能代表程序中“任务”。但是,在 Python 中,有一个称为 asyncio.Task 对象特定对象。...协程线程协程比线程更轻量级。Thread:协程相比重量级Coroutine:线程相比是轻量级。协程被定义为一个函数。

    82620

    机器学习算法相关数据结构

    image.png 但是这些数据结构好处是,即使在更通用编程语言中,实现向量和矩阵也是很简单,假设语言中有任何Fortran DNA。...左节点中值始终小于父节点中值,而父节点中值又小于右节点中值。因此,二叉树中数据被自动排序。插入和访问在O(log n)平均有效。链表一样,它们很容易转换为数组,这是树排序基础。...通常,顶部最高排序值是从堆中提取,以便对列表进行排序。树不同,大多数堆只是存储在数组中,元素之间关系仅是隐式。 堆叠 堆栈被定义为“先进后出”,一个元素被推到堆栈顶部,覆盖前一个元素。...3乘3等式: image.png 结论 在我所做大部分工作中,我使用了很多基本固定长度数组。我使用复杂数据结构,使程序在运行方式和外部世界接口方面更加流畅,也更方便用户使用。...问题 如果你想自己练习并实现ML算法数据结构,请尝试解决以下一些问题: 1. 将矩阵向量乘法代码片段封装到一个名为MatrixTimeVectoral例程中,为例程设计调用语法。 2.

    2.4K30

    Fortran C 数组传递三种方式

    02 Fortran 数组 在高级编程语言初期,Fortran 数组设计 C 是一致,只要拿到数组第一个元素地址即可,相匹配上;但随着 Fortran 在科学计算领域发展,其没有实现链表、哈希等内置数据结构...当然了,Fortran C 函数可以通过指针(地址)传递数组,Fortran Fortran 函数传递方式,肯定也包括以上三种,以及新范式(:)传递方式。...从 C 例程中访问数组 end program main ! 从 Fortran 读取 C 本地数组方式 1: !...在 C 中打印:1.000000 2.000000 3.000000 这里在 Fortran 中绑定 C 中同名数组,从而直接访问 C 数组。...从 C 例程中访问数组 end program main ! 从 Fortran 读取 C 本地数组方式 2: ! 地址:2205703485936 !

    1.4K10

    汇编语言中断及外部设备操作篇--06

    RAM芯片 CMOS RAM 芯片 端口操作示例:提取CMOS RAM中存储时间信息 在屏幕中间显示当前月份 外设连接中断 CPU通过端口外部设备“连接” 外中断:由外部设备发生事件引起中断...(v1.0) 改写中断例程方法 改写中断例程-以int 9为例 实现方法 用中断响应外设 如何操作外部设备?...BIOS提供磁盘直接服务——int 13h 用BIOS int 13h对磁盘进行读操作 用BIOS int 13h对磁盘进行写操作 DOS中断对磁盘文件支持——int 21H 让计算机“唱歌” 外部设备如何被控制...当一个程序中存在若干功能时候,一般不采用挨个判断方式,而采用查表法来决定当前应该调用哪一个功能 ---- 读写磁盘 如何操作磁盘?...——int 21H ---- 让计算机“唱歌” 外部设备如何被控制

    87410

    S7-200 smart做一个电机控制库

    组件"(Components) 节点:选择项目中哪些例程要作为指令包括在库中。 要包括例程,请在左侧列表中选择例程,然后单击"添加"(Add) 按钮。...要删除例程,请选择右侧例程,然后单击"删除"(Remove) 按钮。 不能直接添加中断例程;但如果子例程引用了中断例程,STEP 7 Micro/WIN SMART 会自动包含该中断例程。...当打开新项目时,项目树中库文件夹显示在项目选项中为用户自定义库配置文件夹中库,指令库调用方法子程序基本一样。...然后按照上述方法生成自定义库。注意此时使用V存储区绝对寻址,或者定义符号表有误,则不能正常生成库指令。 如何更改库版本?...这个项目是包含库例程代码项目,而不是调用库指令项目。 3.进行必要更改。

    4.9K20

    如何编写可重入(Reentrant)且线程安全(Thread-safe)代码

    可重入函数不能调用不可重入函数。 不可重入函数经常(但不总是)可以通过其外部接口和用法识别。例如 strtok 是不可重入,因为它保存着将被分隔为字符串。...标准库例程被改写为可重入。...然而,在多线程程序中可变通地使用线程不安全例程。注意,不可重入函数通常都是线程不安全,但将其改写为可重入时,一般也会使其线程安全。...C 标准函数库(libc.a) BSD兼容函数库(libbsd.a) 某些标准 C 函数是不可重入,如 ctime 和 strtok 。它们可重入版本函数名是原始例程名添加“_r”后缀。...在编写多线程程序时,应使用例程可重入版本来替代原有版本。

    48521

    如何编写可重入(Reentrant)且线程安全(Thread-safe)代码

    可重入函数不能调用不可重入函数。 不可重入函数经常(但不总是)可以通过其外部接口和用法识别。例如 strtok 是不可重入,因为它保存着将被分隔为字符串。...标准库例程被改写为可重入。...然而,在多线程程序中可变通地使用线程不安全例程。注意,不可重入函数通常都是线程不安全,但将其改写为可重入时,一般也会使其线程安全。...C 标准函数库(libc.a) BSD兼容函数库(libbsd.a) 某些标准 C 函数是不可重入,如 ctime 和 strtok 。它们可重入版本函数名是原始例程名添加“_r”后缀。...在编写多线程程序时,应使用例程可重入版本来替代原有版本。

    21520

    用matplotlib和pandas绘制股票MACD指标图,并验证化交易策略

    至此,我们实现了计算并绘制MACD指标线功能,读者应该掌握了如何获得指定股票在指定时间段内交易数据,而后可以稍微改写上述例程序,绘制出其他股票在指定时间范围内MACD走势图。...return df 从第3行到第8行程序语句通过import语句导入了必要依赖包,第10行定义calEMA方法和DrawMACD.py范例程序中完全一致,所以就省略了该方法内部代码。...第13行定义计算MACDcalMACD方法和DrawMACD.py范例程序中同名方法也完全一致,但在最后第15行,是通过return语句返回整个df对象,而不是返回仅仅包含MACD指标的相关列,这是因为...验证MACD指标卖点CalSellPointByMACD.py范例程之前CalBuyPointByMACD.py范例程序很相似,下面只分析不同程序代码部分。 1 # !...、calMACD和getMACDByCode三个方法和CalBuyPointByMACD.py范例程序中代码完全一致,所以本节仅仅是给出了这些方法定义,不再重复讲述了。

    4K10

    美团技术实力怎么样?

    具体通过以下 5 个手段实现: 1、事件声明聚合: 发布者和订阅者只能使用预定义事件,严格禁止使用临时事件,事件需要按照约定聚合定义在一个文件中(解决临时事件滥用问题); 2、区分不同组件同名事件:...1.4 美团 modular-event 对比有哪些什么不同? modular-event 使用静态常量定义事件,为什么 ModularEventBus 用接口定义事件?... @Ignore 不同是,@Deprecated 修饰类或方法依然是有效事件定义。 示例程序 // 虽然过时,但依然是有效事件定义 @Deprecated("Don't use it.")...接口定义一系列 observe() 接口订阅事件,使用示例: 示例程序 // 以生命周期感知模式订阅(不需要手动注销订阅) EventDefineOfMainEvents.open().observe...post() 接口发布事件,使用示例: 示例程序 // 发布事件,允许在线程发布 EventDefineOfMainEvents.open().post("XIAO PENG") // 延迟发布事件

    73410

    ARM汇编语言模块结构和条件执行

    常数可以是:数字、布尔值、字符、字符串 模块示例 AREA指令是一个伪指令,用于段定义。ARM汇编程序由段组成,段是相对独立指令或数据单位,每个段由AREA伪指令定义,并定义属性。...此操作是通过将 ARM 半主机 SVC(缺省为 0x123456)下列参数结合使用来完成 r0 等于 angel_SWIreason_ReportException (0x18) r1 等于 ADP_Stopped_ApplicationExit...调用例程 若要调用例程,应使用跳转和链接指令,其语法是:BL destination BL 指令:将返回地址存放到链接寄存器中,将pc设置为例程地址。...destination是例程第一个指令处标签,也可以是程序相对表达式。 在执行例程代码后,可以使用 BX lr 指令返回。...按照约定,寄存器 r0 到 r3 用于将参数传递给例程,并且 r0 还用于将结果传递回调用方。

    94540
    领券