Abaqus subroutine debug techdog 专题

我好不容易子一下程序,你却让我error的如此彻底,哈哈哈哈~,!!!

       最近在做一些子程序的东西,遇到了各种问题,通往complete的路通常只有一条,但产生error的方式却有有无数条。有些错误完全不是个人能力引发的,而是由体系的不完善或者软件本身的问题导致,但却得花大代价debug,浪费大家时间与精力。由此将一些不常见的,甚至于在网外论坛挂了多年的问题拿来讨论,希望大家就是错也都错在自己的设计问题上,而不是非技术性的、工具自身的问题。

        本贴长期随缘更,哎,也是在解决了问题后的无聊发泄吧。

1. 空格与Tab键对编译的影响

       Fortran语言对空格和缩进极为敏感,尤其是子程序头部,极易出错(???)。由manual给出的子程序接口并未直接告知其实缩进情况。以Dflux子程序为例说明:

       在Sublime中的形式这样的:

Abaqus subroutine debug techdog 专题的图1

Abaqus subroutine debug techdog 专题的图2一次在编辑好后运行,出现以下错误:

Abaqus subroutine debug techdog 专题的图3显然是第一句出了问题,主要就是缩进问题。这问题在外网上(www.eng-tips.com)都挂老久,但没人给出有效解答(当然问题可能不一样)。其它论他论坛,包括Intel的论坛含糊其辞。反复检查我的语句,长时间排查不出来。因为该例的形式与缩进量都是与另一个成功案是例一致的(我直接CV的),后来,在光标移至前方空格时,发现了失败案例与成功案例之间的差别:

Abaqus subroutine debug techdog 专题的图4

原来,之前在Sublime中设置了Tab键为两个空格长,且将横线转换为空格。这样每次打Tab就直接是两个空格,当时是为了整段代码端缩进方便而设置的。这就导致我们看起来缩进一致,实际上编译时是当作不同量来处理的,编译器不认这个两个空格的缩进!!

Abaqus subroutine debug techdog 专题的图5

取消将Tab转换为空格,这时就可以正常编译了

Abaqus subroutine debug techdog 专题的图6此时,不将首句换行也可以正常编译。

       所以,Tab不等于2个或4个空格的简单叠加!

       事实上关于Tab键与空格在代码中的应用的差异,人们从不同角度分析,见写代码时,缩进使用 tab 还是空格? - 知乎 (zhihu.com),多是考虑一致性,而忽略了本质差异。

       话又说回来,本例遇到的问题实在是个小问题,调整编辑器或者细心点,养成良好的习惯都可以避免这问题,但无论如何,当一个这种基本的问题在一个协同项目中出现时,带来的时间花费和挫折感是难以接受的(与错误层次相比)。聊以提醒初学者。

ABAQUSAbaqus子程序开发

Abaqus subroutine debug techdog 专题的评论2条

Abaqus subroutine debug techdog 专题的相关案例教程

您将学到的内容: 如何调试 不同的调试方法 使用VSCode调试器 使用Chrome开发工具调试器 如何在脑海中运行代码 快速修复错误 主VS代码调试程序 主Chrome DevTools调试器 调试技术 要求: 基本编码经验 描述 欢迎使用调试基础知识!在本课程中,您将深入了解调试的世界,这是所有开发人员不可或缺的技能。无论您是经验丰富的程序员还是刚起步的程序员,掌握调试技术都将大大提高您高效识
Shell模型成型仿真 Shell分析的流程 建立Shell项目 (Create a Shell Project) 开启Moldex3D Studio并建立一个新的项目。在主页签 (Home Tab ) 的解决方案 (Moldex3D Solution) 中,选择制程类型 (Molding Type)为射出成型 (Injection Molding);网格类型 (Mesh Type)为Shell网
来源 :腾讯数码 2月9日晚23:00,三星Galaxy新品发布会正式举行,为用户带来了新机三星Galaxy S22系列、平板产品三星Galaxy Tab S8系列等产品。 三星这次发布的每一款产品都采用了海洋可持续发展材料,治理于保护地球环境。首先亮相的是三星Galaxy S22系列机型,影像技术大幅提升。 三星Galaxy S22/S22+ 三星Galaxy S22/S22+搭载了1000万像
齿轮是最常用的零部件之一,起到了传递扭矩的作用。为了研究齿轮固有频率和振型的影响因素,改善齿轮的动态特性,齿轮通过与其它齿状机械零件(如另一齿轮、齿条、蜗杆)传动,可实现改变转速与扭矩、改变运动方向和改变运动形式等功能。 本文运用SolidWorks 三维建模软件建立齿轮建模,并运用ABAQUS和振动分析理论对模型进行模态分析,用Lanczos算法提取固有频率,得到齿轮的模态和振型,为优化齿轮的结
CFM的充填设定页签 (Filling Setting Tab for CFM) 在项目设定页签中,可以选择三种成型类型:射出类型、转注类型和压缩类型。其中转注与压缩类型成型需要模型中有压缩区,而原来填充页签的名称也会依据选择的类型而改变。 射出类型 (Injection Type):充填设定与一般射出成型(IM)近似。使用者指定行程时间、流率多段、射出压力多段、V/P切换与压力控制多段,此外还有
影响力
粉丝
内容
获赞
收藏
    项目客服
    培训客服
    2 0