fortran90常见错误

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

1、运行fortran时出现forrt1:severe59:list-directedI/Osyntaxerror,unit1,fileG:\1\1\meat.dat怎么办这是通道1,链接到文件meat.dat的读写出错了。这问题你得认真检查类似read(1,*)或write(1,*)这样的语句,错误原因挺多的。比如二进制文件用了文本方式读取,比如变量列表与文件不匹配。问:另外forrt1:severe161:programexception-arrayboundsexceeded是怎么回事?回答:数组越界,也是很常见的错误。比如reala(100)如果你使用了a(101)就会越界,因为a数组只有100个元素。2、fortran运行提示errorM6201:math-**,现将代码贴出,求高手帮忙看看,急求解答!我不能确定你的错误是怎么引起的。可能咱们的编译器不同。你的代码在我这里的问题是:虚参和实参精度不同。在程序中,你定义了部分real*8,但是对应的虚参和返回值却定义为real。比如主程序里的z1(双精度),传入函数g里面的x却定义为单精度。主程序Do死循环了。z2_jiashe和z2_suan每一次循环都没有发生改变,于是永远跳不出循环。我给你的建议是:同一个程序,统一使用real*8或real*4,尽量不要混用,除非你很自信能理清他们的关系。检查Do循环,尤其是z2_jiashe和z2_suan,是否应该每次循环不同?fortran_排除错误(2012-04-2023:22:44)安装好VISUALFORTRAN后1、运行Developerstudio即可开始编译FORTRAN程序2、选择File菜单中的New选项3、在弹出的对话框选择projects标签,其他标签不用管,projects格式选用Fortranconsoleapplication;在projectname里命名(最好英文名),点击“ok”4、接下来画面中,选择“anemptyproject”,点击“finish”5、接下来画面点击“ok”6、再选择一次File菜单中的new7、对话框选用files标签,选择Fortranfreeformatsourcefile,并在file里命名8、点击“ok”数SourceFiles放源文件(.c、.cpp)程序的实现代码全放在这里HeaderFiles放头文件(.h)声明放在这里ResourceFiles资源文件(.rc)放图标、图片、菜单、文字之类的,主要用来做界面的东东一般都放这里ExternalDependencies除上三种以外的,程序编译时用到的文件全放这里fortran内部函数出错信息解释内部函数出错信息解释[sourcefile(line)]run-timeerrorM62××MATH错误号函数级数学错误信息M6201functionnames:DOMAINerror函数的自变量超出了约定的取值域,例如sqrt(-1)M6202functionname:SINGerror无意义的变量。例如log10(0)M6203functionname:OVERFLOWerror函数的结果值或其中一个既时计算值太大以致不能表示,例如EXP(250000.0)M6204functionname:UNDERFLOWerror函数的结果值或其中一个既时计算值太小以致不能表示。M6205functionname:TLOSSerror完全丢失精度,例如COS(1E30)M6206functionname:PLOSSerrorfortrandebug模式设置和技巧CVF中有两种编译(连接、执行)模式:release模式和debug模式。调试程序时,宜用debug模式;调好后再用release模式,得到高效的执行程序。设定debug模式:点击菜单Build/SetActiveProjectConfiguration,选*-Win32Debug,OK,即设定为debug模式。以debug模式执行:点击“Go(F5)”按钮,或直接按F5键,则执行程序,并在第一个出错语句处停止,在该语句前有一个小黄色箭头。若程序没错,则一直执行完毕,自动关闭dos窗口。此时,宜用“!”按钮或“Ctrl+F5”键,执行完成后,dos窗口等待用户关闭。设置断点:若希望执行时在某一语句处暂停,可将光标置于该语句,点击“手”形状的按钮,或按F9键,则程序执行到该语句时停在该语句处。单步执行:F10(不进入子过程程序段)或者F11(遇到子过程进入子过程程序段继续单步执行)。在工具栏上都有相应的按钮。查看变量值:小黄箭头停在某语句时,按下Variable按钮,显示当前程序段的变量值;对于简单变量,将光标放在该变量上,则即时显示该变量值。先简单说这么多。如何用Debug模式获得更多的提示信息依次选择/打开:Project=Settings=Fortran=CompilationDiagnostics建议选中以下各项:ArgumentMismatch(类型不一致)DataAlignment(数据排列错位)UncalledRoutines(从无调用的子过程)UndeclaredSymbols(未声明变量、过程等)UninitializedVariables(未赋初始值的变量)UnusedVariables(从未用到的变量)Usage(用法)用了这些选项,可以对很多潜在的问题给予警告,使代码更为规范安全。注意:UninitializedVariables只对简单变量有效,对数组无效。如果简单变量a未给初值,而用于b=3.0*a,则编译时将报错,但是如果a是个数组变量,则不报错。(不知后来的IntelVF版本有没有改进?)另外也建议以下设置:FortranStandardChecking:Fortran90/95这样,非标准的、厂家扩充的语法功能就会给出警告。VisualFortran常见运行错误Insufficientvirtualmemory虚拟内存不足Integeroverflow整数溢出错误Integerdividebyzero整数除0错误Floatingoverflow浮点数溢出错误Floatingdividebyzero浮点数除0错误Floatingunderflow浮点数下溢错误Floatingpointexception浮点数异常错误Subscriptoutofrange数组定义超出边界Floating-pointconversionfailed浮点数格式转换失败Nullpointererror空指针错误Stackoverflow堆栈溢出Stringlengtherror字符串长度超出允许范围Substringerror数组下标超出允许范围Rangeerror整数值超出允许范围Allocatablearrayisalreadyallocated数组重复定义ProgramException-arrayboundsexceeded引用数组下标超出允许范围ProgramException-denormalfloating-pointoperand非法浮点数操作符ProgramException-floatingstackcheck浮点数堆栈检查ProgramException-integerdividebyzero整数除0错误ProgramException-integeroverflow整数溢出ProgramException-privilegedinstruction非法执行特权指令ProgramException-illegalinstruction非法指令ProgramException-stackoverflow堆栈溢出Arrayorsubstringsubscriptexpressionoutofrange数组下标低下数组定义下界或高于数组定义上界CHARACTERsubstringexpressionoutofrange字符串非法表示LabelnotfoundinassignedGOTOlist不属于GOTO语句引用的标号INTEGERarithmeticoverflow整数运算结果出现溢出INTEGERoverflowoninput输入的整数值超出允许范围InvalidINTEGER非法整数值REALindefinite(uninitializedorpreviouserror)产生非法实数InvalidREAL非法实数REALmathoverflow实数值溢出NomatchingCASEfoundforSELECTCASEselectcase语句中缺少case项INTEGERassignmentoverflow整数定义超出允许范围AeditdescriptorexpectedforCHARACTER字符型数据的格式化输入和输出需要A编辑符E,F,D,orGeditdescriptorexpectedforREAL实数型数据的格式化输入和输出需要E,F,D,G编辑符IeditdescriptorexpectedforINTEGER整数型数据的格式化输入和输出需要I编辑符LeditdescriptorexpectedforLOGICAL逻辑型数据的格式化输入和输出需要L编辑符Multipleradixspecifiers输入或输出语句重复说明Arrayalreadyallocated数组已分配Arraysizezeroornegative数组大小为0或负数Arraynotallocated没有被分配的数组Invalidargument非法参数Invalidnumberininput输入非法数字Invalidstringininput输入非法字符串CommamissinginCOMPLEXinput输入的多个表达式之间缺少逗号TorFexpectedinLOGICALread输入的逻辑值必须是T或FIllegalcharacterinhexadecimalinput输入非法的十六进制数Integerexpectedinformat格式语句中要求的整数Initialleftparenthesisexpectedinformat格式语句中多余的左括号Positiveintegerexpectedinformat格式语句中要求用正整数IntegerexpectedprecedingH,X,orPeditdescriptor在H、X、P编辑符前要求用整数'.'expectedinformat在D、E、F、G编辑符中w和d域之间用'.'分隔Unexpectedendofformat格式语句没有结束Unexpectedcharacterinformat格式语句中的非法字符MfieldexceedsWfieldinIeditdescriptor在I编辑符中M域的值大于W域的值Integeroutofrangeinformat格式语句中的整数值超出允许范围Separatorexpectedinformat格式语句中需要分隔符Outofrange:substringstartingposition'pos'islessthan1子字符串的起始位置小于1Outofrange:substringendingposition'pos'isgreaterthanstringlength'len'子字符串的终止位置大于字符串长度Outofmemory内存不足Cannotallocatetemporaryarray--outofmemory由于内存不足不能分配临时数组CannotALLOCATEallocatablearray--outofmemory由于内存不足不能分配数组DEALLOCATEfailure:ALLOCATABLEarrayisnotALLOCATED释放没有被分配的组fortran中forrtl:severe(24):end-of-fileduringread,unit7,fileD:\for\1\b-mu.txtimage读

1 / 29
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功