大致思路就是只要不把他们放在一个主程序内就OK了,放在同一个文件或者不同f文件都是一样的。对于第二个问题,回答也是可以的
比如说这样的程序调用:
PROGRAM MAIN
CALL SUB1
END
SUBROUTINE S
CALL SUB2
END
SUBROUTINE SUB2()
CALL SUB3
END
SUBROUTINE SUB3()
END
这几个子程序和主程序PROGRAM MAIN可以放在同一个f文件里面编译,也可以分别放置不同f文件,编译时效果一样。
子程序是一个大型程序中的某部份代码,由一个或多个语句块组成。
一般会有输入参数并有返回值,提供对过程的封装和细节的隐藏。这些代码通常被集成为软件库。函数在面向过程的语言中已经出现。是结构(Struct)和类(Class)的前身。本身就是对具有相关性语句的归类和对某过程的抽象。
子程序(subroutine)是一个概括性的术语,任何高级程序所调用的程序,都被称为子程序。它经常被使用在汇编语言层级上。子程序的主体(body)是一个代码区块,当它被调用时就会进入运行。
子程序的应用:
1、零件上若干处具有相同的轮廓形状,在这种情况下,只要编写一个加工该轮廓形状的子程序,然后用主程序多次调用该子程序的方法完成对工件的加工。
2、加工中反复出现具有相同轨迹的走刀路线,如果相同轨迹的走刀路线出现在某个加工区域或在这个区域的各个层面上,采用子程序编写加工程序比较方便,在程序中常用增量值确定切入深度。
3、在加工较复杂的零件时,往往包含许多独立的工序,有时工序之间需要适当的调整,为了优化加工程序,把每一个独立的工序编成一个子程序,这样形成了模块式的程序结构,便于对加工顺序的调整,主程序中只有换刀和调用子程序等指令。
百度百科—子程序
数控车床的子程序和主程序有什么区别?
为了简化编程,当相同或相似的加工轨迹、控制过程需要多次使用时,就可以把该部分的程序指令编辑为独立的程序进行调用。调用该程序的程序称为主程序,被调用的程序(以M99结束)称为子程序。子程序和主程序一样占用系统的程序容量和存储空间,子程序必须有自己独立的程序名,子程序可以被其它任意主程序调用,也可以独立运行这就是它们的区别和联系。
您好,一、 主程序和子程序
1、 主程序
程序分为主程序和子程序,通常CNC系统按主程序指令运行,但在主程序中遇见调用子程序的情形时,则 CNC 系统将按子程序的指令运行,在子程序调用结束后控制权重新交给主程序。
CNC 存储区内可存 l25个主程序和子程序。程序开始的程序号用 EIA 标准代码O地址指令。
2、子程序
在程序中有一些顺序固定或反复出现的加工图形,把这些作为子程序,预先写人到存储器中,可 大大简化程序。
机电专业技术网
子程序和主程序必须存在同一个文件中,调出的子程序可以再调用另一个子程序,我们将主程序调用子程序称为一重子程序调用,子程序调用子程序称为多重调用。
一个子程序可被多次调用,用一次调用指令可以重复 999 次调用。
l )子程序的编制
在子程序的开始为O地址指定的程序号、子程序中最后结束子程序指令 M99 ,为一单独程序段。
2 )子程序的执行
子程序是由主程序或上层子程序调山并执行的。
子程序调用指令如下:
M98 P L x x x x
调用子程序指令 子程序号 子程序调用次数
子程序调用次数的默认值为 1
(例 l ) ; M98PL002L5 %1002 号子程序被连续调用 5 次 机电专业技术网
M98 指令可与刀具移动指令放于同一程序段中。
[注1]子程序和主程序必须存在同一个文件中
[注2]子程序名和主程序名不得相同。
[注3]M98 , M99 信号不愉出到机床处,
[注4]当找不到 p 地址指定的子程序号时报警。
[注5]在 MDI 下使用 M98 P 调用指定的子程序是无效的。
汇编语言中主程序与子程序参数传递的方法有以下几种:
1寄存器法
寄存器法就是将入口参数和出口参数存放在约定的寄存器中。
优点:数据传递书读快、编程较方便、节省内存单元。
缺点:当传递参数过多时候,由于寄存器个数有限,及寄存器的频繁使用,将导致寄存器不足。
适用:参数较少的子程序
2。约定单元法:
约定单元法顾名思义是吧入口参数和出口参数都放在事先约定好的单元中
优点:不占用寄存器、参数个数任意、每个子程序要处理的数据和送出的结构都有独立的存储单元
缺点:但用一定数量的存储单元,增加编程中对变量定义的难度
3堆栈法
堆栈法是利用堆栈来传递参数的。
优点:参数不占用寄存器,和存储单元。参数存放在公共堆栈区,处理完后客恢复。参数个数一般不限
缺点:由于参数和子程序混杂在一起,存取参数时候必须小心计算它在堆栈中的位置。要注意断点的保存和恢复。
4地址表法
这种方法是把参数组成的一张参数表放在某个存储区中,然后只要主程序和子程序约定好这个存储区的首地址和存放的内容,在主程序中将参数传递给地址表,在子程序中根据地址表给定的参数就可以完成 *** 作。
以上就是关于fortran主程序调用一个子程序,子程序又调用另一个子程序,如何编译。全部的内容,包括:fortran主程序调用一个子程序,子程序又调用另一个子程序,如何编译。、什么是子程序、数控车床的子程序和主程序有什么区别等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)