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

子程序

子程序 在KRL中有两种子程序,即全局子程序和局部子程序,而且主程序的概念其实并不强,主程序也并不是必须用“main”来命名,所以我们可以把任何一个程序当成主程序来用。 为什么一定要用子程序?...所以子程序的根本目的就是用来解决代码冗余问题的,并没有多么的高大上,不过是因为子程序的各自用法把它变得有点高深。...全局子程序可以在R1下的任何程序模块的调用,比如我们将一部分功能写在一个全局子程序模块中,那么这部分程序就可以多次被使用。 局部子程序 在src文件中end后面建立的程序为局部子程序。...局部子程序是多个程序贡献一个dat文件,因此在dat中声明的变量,该程序中所有的子程序都有效,运动点也有效 ---- 那么有人说如果我全都建立成全局子程序不行么? 嗯。。。...还有就是假如你需要有一个子程序仅在局部有效的话那就只能是局部子程序了。 如此说来,到底什么时候用全局什么时候用局部呢?

62720

【阿信子程序学习笔记(2)】什么是ABAQUS子程序

如题,在解释ABAQUS子程序是什么东东之前,需要明确几个问题: 什么是FORTRAN语言? 什么是FORTRAN程序? 什么是FORTRAN子程序? 什么是ABAQUS子程序?...FORTRAN程序一般包含主程序和若干程序模块,这些程序模块可以是子程序也可以是函数等类型。 什么是FORTRAN子程序?...通俗的讲,子程序是可以被主程序调用的模块,或者说过程,以SUBROURTINE语句开始,END语句结束。 什么是ABAQUS子程序?...ABAQUS子程序可以理解为是被ABAQUS软件定制过的子程序,每一种特定的子程序都有严格的参数规定,不能更改哑元列表,向ABAQUS求解器主程序传递的参数是固定的,并且需要包含特定的语句。...因此可看作是FORTRAN子程序的子集。如下图所示。

1.3K20
您找到你想要的搜索结果了吗?
是的
没有找到

【阿信ABAQUS子程序(7)】USDFLD

ABAQUS子程序USDFLD(User subroutine to redefine field variables at a material point.)...ABAQUS子程序USDFLD的接口如下: SUBROUTINE USDFLD(FIELD,STATEV,PNEWDT,DIRECT,T,CELENT, 1 TIME,DTIME,...总的来说实现这个入门级任务的子程序并不复杂,读者朋友可以尝试编写更为复杂的程序,比如进行相变仿真和材料属性的改变等等,限于篇幅,本文不再进行更为深入的介绍。...补充说明内容: (1)在USDFLD中用到的子程序GETVRM,可以读取积分点的所有状态变量,详情请查阅帮助文档。 (2)在结果中显示自定义状态变量SDV的名称。...图4 修改结果文件中自定义状态变量SDV的显示名称 【阿信ABAQUS子程序系列文章——未完待续】

3.5K10

DOS子程序汇编样例及详解

也称单步跟踪命令(step in),t命令是单步执行,遇到子程序,也会进入里面一步步执行再返回。 P命令:执行循环、重复的字符串指令、软件中断或子例程。...单步执行命令(step over),p命令,大多数情况与t一样,只有当遇到call调用子程序的时候,p命令直接执行完这个程序。 G命令:连续执行内存代码,可以在g后面指定内存地址。...MOV CX,0 CIR: MOV DX,0 ;输入的是四位及以下十六进制数字,因此被除数高位置零 ADD CX,1 ;为输出时循环结束做准备 DIV BX ;AX中的数字除以10,ax存储商数...l1 段,CX 控制循环次数 ret ;子程序返回 datacate endp ;子程序结束 ifyears proc near ;说明datacate 子程序在主程序段内 push bx ;...山东大学微处理器原理实验3工程文件 子程序汇编实验

59820

【阿信子程序学习笔记(4)】ABAQUS子程序该用哪个FORTRAN版本,77?90?95?

FORTRAN语言发展至今已经推出了若干版本,那么究竟采用哪个版本来编写ABAQUS子程序呢?...但是直接采用90或者95以上的版本编写子程序,ABAQUS却又不能识别。...这里需要说明一点,ABAQUS原生支持的FORTRAN77的语法形式,因此采用77写子程序肯定是没有问题的,但是实际上更高级的比如90也是能够支持的,需要对.env文件进行修改,加入支持90的语句即可。...就阿信老师(公众号:ABAQUS二次开发)的经验来说,采用77的语法即可,因为ABAQUS子程序有其特殊性,并不是一个完整意义上的软件开发,只是为了实现理论公式的植入或者实现某些算法,比如应力的拉回算法等等...因此无需特别高级FORTRAN版本就能够实现子程序的编写,换个角度想想,很多计算力学的理论早已在有限元软件中实现,那时候有如今高版本的FORTRAN语言吗?

1.1K20

汇编语言流程转移与子程序篇--05

汇编语言流程转移与子程序篇--05 “转移”综述 操作符offset 用操作符offset取得标号的偏移地址 练习 jmp指令 jmp指令——无条件转移 jmp指令:依据位移进行转移 两种段内转移 远转移...指令 指令“call far ptr 标号”实现的是段间转移 转移地址在寄存器中的call指令 转移地址在内存中的call指令 返回指令:ret 和 retf call 和 ret 的配合使用 具有子程序的源程序的框架...BP寄存器,而BP寄存器可能在主程序或者其他程序中被使用中,因此当前子程序用完BP寄存器后,需要恢复其旧值才可以。...方案: 用寄存器传递参数 用内存单元进行参数传递 用栈传递参数 ---- 寄存器冲突问题 引子 之前我们每次循环时,都是提前将要循环的次数保存在了cx寄存器中,但是有没有办法不提前写好循环次数...,而在合适的时机结束循环呢?

63410

程序中断和调用子程序有何区别

1)调用子程序发生的时间是已知的和固定的,即在主程序的调用指令(CALL)执行时发生主程序调用子程序过程,调用指令所在位置是已知的和固定的;而中断过程发生的时间一般是随机的,CPU在执行某一主程序时受到中断源提出的中断申请...也可以说,调用子程序是程序设计者事先安排好的,而执行中断服务程序是由系统工作环境随机决定的。 2)子程序完全为主程序服务,两者属于主从关系。...主程序需要子程序时就去调用子程序,并把调用结果带回主程序继续执行。而中断服务程序与主程序二者一般是无关的,两者是平行关系。...3)主程序调用子程序的过程完全属于软件处理过程,不需要专门的硬件电路,而中断处理系统是一个软、硬件结合的系统,需要专门的硬件电路才能完成中断处理的过程。...4)子程序嵌套可以实现若干级,嵌套的最多级数受计算机内存开辟的堆栈大小限制;而中断嵌套级数主要由中断优先级来决定,一般优先级不会很大。

2.3K20

中断服务子程序是如何被执行的 ?

但是中断服务子程序并没有被主程序进行调用,中断服务子程序的执行是通过中断请求完成的,也就是说中断服务子程序可以发生在主程序执行的随意位置,那现在就面临一个问题了,如果当CPU 正在执行函数调用的子程序的内容的时候产生了一个中断请求...,那么这个时候 CPU 将暂停执行函数调用的子程序的内容,转而去执行中断服务子程序的内容,如果不进行额外的处理,那么函数调用的子程序的相关数据将丢失,因此在执行中断服务子程序之前,CPU 必须要保存发生中断的那个地方的相关信息...,这个操作用专业的术语来讲就是保护现场,保护现场之后,CPU 将执行中断服务子程序的内容,执行完中断服务子程序的内容之后,CPU 要回到刚刚暂停的地方继续执行,另外在返回之前,CPU 还要进行恢复现场,...中断响应示意图 通过上述示意图我们也可以看到在返回地址这个地方,中断服务子程序和函数调用子程序的返回地址所遵循的原理是一样的,函数调用子程序的返回地址是函数调用指令的下一条指令的地址,而在上述示意图中的...中断向量表 在上述所阐述的内容中,我们知道了中断会在主程序的任意发生中断请求,从而执行中断服务子程序的内容,也阐述了在执行中断服务子程序的内容之前需要进行保护现场的操作,以及执行完中断服务子程序的内容之后需要进行恢复现场

1.1K10

中断服务子程序是如何被执行的 ?

但是中断服务子程序并没有被主程序进行调用,中断服务子程序的执行是通过中断请求完成的,也就是说中断服务子程序可以发生在主程序执行的随意位置,那现在就面临一个问题了,如果当CPU 正在执行函数调用的子程序的内容的时候产生了一个中断请求...,那么这个时候 CPU 将暂停执行函数调用的子程序的内容,转而去执行中断服务子程序的内容,如果不进行额外的处理,那么函数调用的子程序的相关数据将丢失,因此在执行中断服务子程序之前,CPU 必须要保存发生中断的那个地方的相关信息...,这个操作用专业的术语来讲就是保护现场,保护现场之后,CPU 将执行中断服务子程序的内容,执行完中断服务子程序的内容之后,CPU 要回到刚刚暂停的地方继续执行,另外在返回之前,CPU 还要进行恢复现场,...,转而去执行中断服务子程序的内容,然后中断服务子程序的返回地址对应的是第 N+1 条指令的地址。...中断向量表 在上述所阐述的内容中,我们知道了中断会在主程序的任意发生中断请求,从而执行中断服务子程序的内容,也阐述了在执行中断服务子程序的内容之前需要进行保护现场的操作,以及执行完中断服务子程序的内容之后需要进行恢复现场

1.5K30

西门子808D系统如何调用子程序

西门子808D有两种操作编程模式,一种是西门子模式,一种是ISO模式(即广数,法拉克编程模式) 如何在西门子模式下调用子程序呢?...调用的格式为 程序名+P,如该程序中为L2P2,即是调用了程序名为L2的子程序2次 以下为程序运行的结果,X轴从0走了两个100mm 2.如何在ISO模式下调用子程序呢?...首先将机床切换到ISO模式 建立如下两个程序,2为主程序,123为子程序 运行结果如下: 在命名子程序时需要注意的一点是,系统内部参数20734对命名规则会产生影响, 如20734的位6设置为...1时,子程序名不足4位时前面不能用0来填补,如我把子程序命名为0123 调用M98P0123L2 就会出现如下报警: 解决的方法,一种是改变程序名,即直接命名子程序为123,或者需要通过修改系统内部参数...总之,如果在调用子程序的过程中出现报警,尤其要注意子程序的命名! 想了解更多的西门子数控,可以关注一下公众号,随时欢迎您来电咨询!

2K80

【阿信子程序学习笔记(1)】关于FORTRAN与ABAQUS关联

在接下来的一段时间,本公众号着重推出子程序和Python二次开发相关的文章。...(配图与文章内容无关,随意找的) FORTRAN编译器与ABAQUS求解器之间的关联,就是大家通常所说的如何关联子程序,一直为很多刚接触子程序的朋友所困惑,网上也有很多帖子总结了关联的方法,但是仍然有很多朋友出现无法关联成功的问题...(2)选择合适的ivs和FORTRAN版本,具体版本请百度,很多文章有总结,不再复述 (3)最核心的一点,关联FORTRAN,实际上给ABAQUS求解器提供一个FORTRAN子程序的编译环境,只要能首先启动...FORTRAN编译器然后再启动ABAQUS就可以运行需要子程序的计算模型了,有心的朋友可以领悟一下其中道理。

85840
领券