常见Fortran编程错误解释

常见Fortran错误解释  

2009-11-19 14:36:57|  分类: 程序编程|举报|字号 订阅

    

 0. 高精度定义避免舍入误差

   !定义Fortran语言高精度格式中,一般有(比如定义双精度)

  a=1e-3

  常见的有:

real*8 a

real(kind=8) a::a=1e-3

a=1e-3d0

但是前两种会在数值后几位出现舍入误差a=1.00000004749745e-003。

而最好的是第三种,a=1000000000000000e-3,运行结果没有舍入误差。

1.  Incrementally linked image--PC correlation disabled.

   !编译终止

2. forrtl: severe (157): Program Exception - access violation

    !The program tried to read from or write to a virt l address for which it does not have the appropriate access. Try recompiling with the /check:bounds and /warn:argument_checking options set, to see if the problem is an out-of-bounds memory reference or a argument mismatch that causes data to be treated as an address.
Other causes of this error incl?:
Mismatches in C vs. STDCALL calling mechanisms, causing the stack to become corrupted
References to unallocated pointers Attempting to access a protected (for example, read-only) address

3 "forrtl: severe (64): input conversion error, unit 2, file D:\FORTRAN2\testi

   !文件testi正在读写,直到读写到2时错误。举例:程序想读写整数,却碰到变量故终止。

4 error LNKZOOI : unresolved external symbol _ SN @ 4 fatal error LNKllZO : 1 unresolved externals

! 出现了未指定的外部函数符号 Sn 。这是因为在函数子程序中错把函数名 Sn 写成了 ns 。根据错误信息中的提示,用户在编辑窗口寻找有错位置进行修改。连接错误往往出现在有函数调用或子程序调用的程序中,常见的错误性质有:未定的函数符号、找不到主程序或子程序、实参与虚参的个数不一致等。注意:连接错误只给出错误代号和错误性质,不给出具体语句的行号。

5 :: error FOR229O : implicit type for 1 detected between 1 and = C : \ abc .

 : error FOR33Og : undefined label 10

编译系统提示用户:在程序的第 5 行,变量 i 未经类型说明;在程序的第 H 行,标号 10 未定义。为了便于将 output 窗口中的错误信息与程序中的有错语句对照起来检查,可以双击错误列表中的某一行,此时该行被高亮显示,同时有一个小指针在编辑窗口内指向程序中对应该行错误的语句行.

6  C : \ abc .f90( 5 ) : error FOR229O : implicit type forx

即编译系统通告用户:在程序“ C :、 abc . fgo ”中的第 5 行发现了错误,错误代号为“ error FoR229o " ,错误性质是“ implicit type forx " (变量 x 未经类型说明)。

7     run 一 time error M62OI : MATH 一 sqrt : DOMAIN error

该错误为内部函数 sqrt 的定义域错误,即函数 sqrt 的参数不能为负数。

 8  边界点的值往区域内部移动

 边界变量定义的维数小于实际维数

9  FortranPGM\EULER invisicid flow\TWODEULER.F90(737) : Warning: In the call to C VCUV, there is no act l argument corresponding to the dummy argument TTT.
      CALL C VCUV(MP1,NP1,M,N,DELX,DELY,U,V,CU,CV,CUS,CVS,&------^

  !调用子程序中,存在一个不存在的哑元变量TTT,建议对其修改。

10 forrtl: severe (161): Program Exception - array bounds exceeded
             Image              PC        Routine            Line        Source
             TWODEULER.exe      0041CBD4  Unknown               Unknown  Unknown
             TWODEULER.exe      0040CF57  Unknown               Unknown  Unknown
             TWODEULER.exe      004722B9  Unknown               Unknown  Unknown
             TWOD EULER.exe      00466264  Unknown               Unknown  Unknown
             kernel32.dll       7C816FE7  Unknown               Unknown  Unknow

             Incrementally linked image--PC correlation disabled.
                    Press any key to contin

超出数组的维数。(即变量的个数太大)

11 --------------------Configuration: TWODEULER - Win32 Debug--------------------
          Compiling Fortran...
          D:\FortranPGM\EULER invisicid flow\TWODEULER.F90

               TWODEULER.OBJ - 0 error(s), 0 warning(s)

源程序编译,生成一个目标文件。这TWODEULER.OBJ 是一个二进制文件,便于机器执行。这一点是与matlab的本质区别。

12 D:\FortranPGM\EULER invisicid flow\TWODEULER.F90(5) : Error: This name cannot be   assigned this data type because it conflicts with prior uses of the name.   [N]
   INTEGER MP1,NP1,M,N,I,J,KP,KH,KVEL
---------------------^
Error executing df.exe. 
TWODEULER.OBJ - 2 error(s), 0 warning(s)

! PARAMETER 中属性指定后,不能再定义成变量。

13. A specification statement cannot appear in the executable section

!

14. Configuration: TWODEULER - Win32 Debug--------------------
        Compiling Fortran...
         D:FortranPGMEULER invisicid flowTWODEULER.F90
         f90: Fatal: There has been an internal compiler error (C0000005).
         Error executing df.exe.

      TWODEULER.OBJ - 1 error(s), 0 warning(s)


   !本人真实体验了这个错误。

1.一般是 Compaq Vis l Fortran 没有安装好,可能是安装的时候询问是否修改环

境变量的时候,你选择了 否。当然可以手动设置环境变量,但这个要求比较高,操作

比较复杂。简单的办法就是重新安装编译器。

2.这是系统出问题了。在程序执行中,电脑重启后的错误。是

系统文件损坏。特别是在win32 debug 不能执行的情况下出现。一个简单的办法就是在 

 win32 debug的下拉框下选定新的编译器win32 release就可以实现程序编译。如果这

方法还是不能运行,建议重装电脑系统,一恢复已损害的文件。

15.经典fortran教材下载

http://mail.ustc.edu.cn/~jfnano/fort/index.html

16.为何初始变量赋值后,经过调用的子程序(子程序与该初始变量有关或无关)却值改变为零呢?

这是因为,在子程序存在错误,子程序无法进行调用,里面哑元没有不能作为参数传递形式,或外部变量没有赋值进子程序内部的变量,建议修改。属逻辑错误,也属于基本语法错误。

 17.两个整数相除,为何结果为零。

在fortran中的数有属性,两个整数相除,结果是小数当然无法显示,比如3/20,结果为零。只有对整数进行float定义,才能求出相应的小数。

float(3)/float(20) 结果等于:0.15

 18.为何正常的定义不合规范

C:\FORTRAN PROGRAM\inviscid -2dliangcheng\inviscid-2d.for
C:\FORTRAN PROGRAM\inviscid -2dliangcheng\

  • 28
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
CruiseYoung提供的带有详细书签的电子书籍目录 http://blog.csdn.net/fksec/article/details/7888251 该资料是《Visual C++ 2005入门经典》的源代码及课后练习答案 对应的书籍资料见: Visual C++ 2005入门经典 基本信息 原书名: Ivor Horton's Beginning Visual C++ 2005 原出版社: Wiley 作者: (美)Ivor Horton 译者: 李颂华 康会光 出版社:清华大学出版社 ISBN:9787302142713 上架时间:2007-2-12 出版日期:2007 年1月 开本:16开 页码:1046 版次:1-1 编辑推荐   本书由编程语言先驱者Ivor Horton倾力而著,是国内第一本全面、深入介绍Visual C++ 2005的经典之作! 内容简介   本书系编程语言先驱者Ivor Horton的经典之作,是学习C++编程最畅销的图书品种之一,不仅涵盖了Visual C++ .NET编程知识,还全面介绍了标准C++语言和.NET C++/CLI。本书延续了Ivor Horton讲解编程语言的独特方法,从中读者可以学习Visual C++ 2005的基础知识,并全面掌握在MFC和Windows Forms中访问数据源的技术。此外,本书各章后面的习题将有助于读者温故而知新,并尽快成为C++高效程序员。...    作译者   Ivor Horton是世界著名的计算机图书作家,主要从事与编程相关的顾问及撰写工作,曾帮助无数程序员步入编程的殿堂。他曾在IBM工作多年,能使用多种语言进行编程(在多种机器上使用汇编语言和高级语言),设计和实现了实时闭环工业控制系统。Horton拥有丰富的教学经验(教学内容包括C、C++、Fortran、PL/1、APL等),同时还是机械、加工和电子CAD系统、机械CAM系统和DNC/CNC系统方面的专家。Ivor Horton还著有Beginning Visual C++ 6、Beginning C Programming和Beginning Java 2等多部入门级好书。 目录 封面 -18 前言 -14 目录 -9 第1章 使用Visual C++ 2005编程 1 1.1 .NET Framework 1 1.2 CLR 2 1.3 编写C++应用程序 3 1.4 学习Windows编程 4 1.4.1 学习C++ 4 1.4.2 C++标准 5 1.4.3 控制台应用程序 5 1.4.4 Windows编程概念 6 1.5 集成开发环境简介 7 1.6 使用IDE 9 1.6.1 工具栏选项 9 1.6.2 可停靠的工具栏 10 1.6.3 文档 11 1.6.4 项目和解决方案 11 1.6.5 设置Visual C++ 2005的选项 23 1.6.6 创建和执行Windows应用程序 24 1.6.7 创建Windows Forms应用程序 26 1.7 小结 29 第2章 数据、变量和计算 31 2.1 C++程序结构 31 2.1.1 程序注释 36 2.1.2 #include指令——头文件 37 2.1.3 命名空间和using声明 37 2.1.4 main()函数 38 2.1.5 程序语句 38 2.1.6 空白 40 2.1.7 语句块 41 2.1.8 自动生成的控制台程序 41 2.2 定义变量 42 2.2.1 命名变量 43 2.2.2 C++中的关键字 43 2.2.3 声明变量 44 2.2.4 变量的初值 44 2.3 基本数据类型 45 2.3.1 整型变量 45 2.3.2 字符数据类型 46 2.3.3 整型修饰符 47 2.3.4 布尔类型 48 2.3.5 浮点类型 48 2.3.6 ISO/ANSI C++中的基本类型 49 2.3.7 字面值 50 2.3.8 定义数据类型的同义词 50 2.3.9 具有特定值集的变量 51 2.3.10 指定枚举常量的类型 52 2.4 基本的输入/输出操作 53 2.4.1 从键盘输入 53 2.4.2 到命令行的输出 53 2.4.3 格式化输出 54 2.4.4 转义序列 55 2.5 C++中的计算 57 2.5.1 赋值语句 57 2.5.2 算术运算 58 2.5.3 计算余数 63 2.5.4 修改变量 63 2.5.5 增量和减量运算符 64 2.5.6 计算
Java程序设计复习题2 1、下列关于Java Application与Java Applet程序的差别描述正确的是(B ) A) 运行方式不同,程序结构相同,运行工具不同,受到的限制相同 B) 运行方式相同,程序结构不同,运行工具不同,受到的限制相同 C) 运行方式相同,程序结构相同,运行工具不同,受到的限制也不同 D) 运行方式不同,程序结构不同,运行工具不同,受到的限制也不同 2、Java语言具有许多优点和特点,下列选项中,哪个反映了Java程序并行机制的特点( B ) A) 安全性 B) 多线性 C) 跨平台 D) 可移植 3、Java语言中的int及char数据类型的长度分别为? A) 16位和8 位 B) 8位和16位 C) 32位和16位 D) 32位和8位 4、数组的哪个实例变量可以确定数组的长度( B ) A) size B) length C) max_value D) Length() 5、异常包含下列那些内容( C ) A) 程序中的语法错误 B) 程序的编译错误 C) 程序执行过程中遇到的事先没有预料到的情况 D) 程序事先定义好的可能出现的意外情况 6、java语言语言的类型上应属于那种类型的语言D A) 编译型的语言 B) 解释型的编译语言 C) 脚本型的解释语言 D) 编译链接型的语言 7、java语言编程方法上及语言的语法规则上与如下那种编程语言最接近B A) C 语言 B) C++语言 C) Basic 语言 D) Fortran 语言 8、监听事件和处理事件(C ) A) 都由Listener完成 B) 都由相应事件Listener处登记过的构件完成 C) 由Listener和构件分别完成 D) 由Listener和窗口分别完成 9、在MicroSoft Windows操作系统应用平台下,下列那种程序是java程序的解释器D A) Windows系统的资源管理器 B) Windows操作系统本身 C) Windows操作系统应用平台下的IE浏览器 D) Windows操作系统应用平台下的记事本notepad程序 10、下面说法正确的是(B ) A) final 可修饰类、属性、方法。 B) abstract可修饰类、属性、方法。 C) 定义抽象方法需有方法的返回类型、名称、参数列表和方法体。 D) 用final修饰的变量,在程序中可对这个变量的值进行更改。 11、下列哪个属于容器的构件( A ) A) JFrame B) JButton C) Panel D) JApplet 12、下列那种标识符在java程序中是错误的D A) MyClass_Base12 B) _MyClass$Base12 C) $MyClass_12 D) 76MyClass$12 13、下列叙述中,正确的是( C ) A)Reader是一个读取字符文件的接口 B)Reader是一个读取数据文件的抽象类 C)Reader是一个读取字符文件的抽象类 D)Reader是一个读取字节文件的一般类 14、main 方法是 Java Application 程序执行的入口点,关于 main 方法的方法头以下哪项是合法的( B ) A)public static void main ( ) B)public static void main ( String args[] ) C)public static int main ( String [] arg ) D)public void main ( String arg[] ) 15、下列代码中,将引起编译错误的行是( B ) 1)public class Exercise{ 2) public static void main(String args[]){ 3) float f=0.0; 4) f+=1.0; 5) } 6) } A) 第2行 B) 第3行 C) 第4行 D) 第6行 16、下列各种java中的条件语句,那种在java语言中是错误的条件格式? A) if (A >= B) B) if( A = = B) C) if( A = B) D) if((A >B) = =true) 17、下列Java常见事件类中哪个是鼠标事件类( C ) A)InputEvent B)KeyEvent C)MouseEvent D)WindowEvent 18、下列哪个是面向大型企业级用容器管理专用构件的应用平台( A) A)J2EE B)J2ME C)J2SE D)J2DE 19、何时线程进入runnable 阶段( ) A)当调用get() 方法时 B)当调用setTime() 方法时 C)当调用showStatus() 方法时 D)当调用start()方法时 20、下
Fortran编程中,使用PARDISO库求解大型稀疏复数矩阵方程是一个常见的需求。PARDISO是一种并行直接解法器,它能够高效地求解稀疏矩阵方程。 以下是一个使用PARDISO库求解大型稀疏复数矩阵方程的简单示例代码: ```fortran program sparse_solver implicit none ! PARDISO库的接口声明 interface subroutine pardisoinit(pt, mtype, iparm) integer, intent(inout) :: pt(:), iparm(:) integer, intent(in) :: mtype end subroutine pardisoinit subroutine pardiso(pt, maxfct, mnum, mtype, phase, n, a, ia, ja, perm, nrhs, iparm, msglvl, b, x, error) integer, intent(inout) :: pt(:), iparm(:), perm(:), ia(:), ja(:) integer, intent(in) :: maxfct, mnum, mtype, phase, n, nrhs, msglvl complex, intent(inout) :: a(:) complex, intent(inout) :: b(:), x(:) real(kind=8), intent(out) :: error end subroutine pardiso subroutine pardisofree(pt, mtype) integer, intent(inout) :: pt(:) integer, intent(in) :: mtype end subroutine pardisofree end interface ! 定义PARDISO相关参数 integer :: pt(64), iparm(64) integer :: maxfct, mnum, mtype, phase, n, nrhs integer :: ia(n+1), ja(:), perm(n) complex :: a(:), b(n), x(n) real(kind=8) :: error character(len=64) :: msg ! 初始化PARDISO库 maxfct = 1 mnum = 1 mtype = -4 ! 复数矩阵 phase = 11 ! 初始化阶段 n = ! 矩阵的维度 nrhs = 1 ! 方程右侧的列数 call pardisoinit(pt, mtype, iparm) ! 设置PARDISO的参数 iparm(1) = 1 ! 使用默认配置 iparm(3) = 0 ! 不打印统计信息 iparm(4) = 0 ! 不打印错误信息 ! 填充稀疏矩阵A的数据 ! ... ! 填充向量b的数据 ! ... ! 调用PARDISO求解方程 call pardiso(pt, maxfct, mnum, mtype, phase, n, a, ia, ja, perm, nrhs, iparm, 0, b, x, error) ! 检查求解状态 if (error /= 0.0) then write(*, *) "PARDISO solver failed with error code: ", error stop end if ! 输出解向量x的结果 ! ... ! 释放PARDISO库占用的内存 call pardisofree(pt, mtype) end program sparse_solver ``` 请注意,上述示例中的部分代码需要根据您的具体问题进行填充,包括稀疏矩阵A和向量b的数据填充以及解向量x的结果输出。此外,您需要确保已经正确安装并链接了PARDISO库。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值