当前位置:文档之家› fortran常见错误及其原因

fortran常见错误及其原因

fortran常见错误及其原因
fortran常见错误及其原因

常见fortran错误

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 virtual 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 include:

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 F oR229o " ,错误性质是“ implicit type forx " (变量x 未经类型说明)。

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

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

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

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

9 FortranPGM\EULER invisicid flow\TWODEULER.F90(737) : Warning: In the call to CUCVCUV, there is no actual argument corresponding to the dummy argument TTT.

CALL CUCVCUV(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 continue

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

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 中属性指定后,不能再定义成变量。

内部函数出错信息解释

[sourcefile(line)]run-time error M62××MATH

错误号函数级数学错误信息

M6201 functionnames:DOMAIN error

函数的自变量超出了约定的取值域,例如sqrt(-1)

Sqrt 定义域错误,不一定是负数,还可能是NaN,abs(NaN)依然是NaN

M6202 functionname:SING error

无意义的变量。例如log10(0)

M6203 functionname:OVERFLOW error

函数的结果值或其中一个既时计算值太大以致不能表示,例如EXP(250000.0) M6204 functionname:UNDERFLOW error

函数的结果值或其中一个既时计算值太小以致不能表示。

M6205 functionname:TLOSS error

完全丢失精度,例如COS(1E30)

M6206 functionname:PLOSS error

41 Insufficient virtual memory 虚拟内存不足

70 Integer overflow 整数溢出错误

71 Integer divide by zero 整数除0错误

72 Floating overflow 浮点数溢出错误

73 Floating divide by zero 浮点数除0错误

可能原因:可能是pde文件写的有问题,看看其中的除法运算,有没有除零的情况,改改。或者,前处理的数据,和计算时的数据不一致,如前处理化的网格是三角形,而计算时的单元类型是四边形。

74 Floating underflow 浮点数下溢错误

75 Floating point exception 浮点数异常错误

77 Subscript out of range 数组定义超出边界

95 Floating-point conversion failed 浮点数格式转换失败

146 Null pointer error 空指针错误

147 Stack overflow 堆栈溢出

148 String length error 字符串长度超出允许范围

149 Substring error 数组下标超出允许范围

150 Range error 整数值超出允许范围

151 Allocatable array is already allocated 数组重复定义

161 Program Exception - array bounds exceeded 引用数组下标超出允许范围

162 Program Exception - denormal floating-point operand 非法浮点数操作符

163 Program Exception - floating stack check 浮点数堆栈检查

164 Program Exception - integer divide by zero 整数除0错误

165 Program Exception - integer overflow 整数溢出

166 Program Exception - privileged instruction 非法执行特权指令

168 Program Exception - illegal instruction 非法指令

170 Program Exception - stack overflow 堆栈溢出

540 Array or substring subscript expression out of range 数组下标低下数组定义下界或高于数组定义上界

541 CHARACTER substring expression out of range 字符串非法表示

542 Label not found in assigned GOTO list 不属于GOTO语句引用的标号

543 INTEGER arithmetic overflow 整数运算结果出现溢出

544 INTEGER overflow on input 输入的整数值超出允许范围

545 Invalid INTEGER 非法整数值

546 REAL indefinite (uninitialized or previous error) 产生非法实数

547 Invalid REAL 非法实数

548 REAL math overflow 实数值溢出

549 No matching CASE found for SELECT CASE select case语句中缺少case项

550 INTEGER assignment overflow 整数定义超出允许范围

556 A edit descriptor expected for CHARACTER 字符型数据的格式化输入和输出需要A编辑符

557 E, F, D, or G edit descriptor expected for REAL 实数型数据的格式化输入和输出需要E,F,D,G编辑符

558 I edit descriptor expected for INTEGER 整数型数据的格式化输入和输出需要I编辑符

559 L edit descriptor expected for LOGICAL 逻辑型数据的格式化输入和输出需要L编辑符

568 Multiple radix specifiers 输入或输出语句重复说明

582 Array already allocated 数组已分配

583 Array size zero or negative 数组大小为0或负数

585 Array not allocated 没有被分配的数组

610 Invalid argument 非法参数

616 Invalid number in input 输入非法数字

617 Invalid string in input 输入非法字符串

618 Comma missing in COMPLEX input 输入的多个表达式之间缺少逗号

619 T or F expected in LOGICAL read 输入的逻辑值必须是T或F

622 Illegal character in hexadecimal input 输入非法的十六进制数

637 Integer expected in format 格式语句中要求的整数

638 Initial left parenthesis expected in format 格式语句中多余的左括号

639 Positive integer expected in format 格式语句中要求用正整数

641 Integer expected preceding H, X, or P edit descriptor 在H、X、P编辑符前要求用整数

644 '.' expected in format 在D、E、F、G编辑符中w和d域之间用'.'分隔

645 Unexpected end of format 格式语句没有结束

646 Unexpected character in format 格式语句中的非法字符

647 M field exceeds W field in I edit descriptor 在I编辑符中M域的值大于W域的值

648 Integer out of range in format 格式语句中的整数值超出允许范围

650 Separator expected in format 格式语句中需要分隔符

663 Out of range: substring starting position 'pos' is less than 1 子字符串的起始位置小于1

664 Out of range: substring ending position 'pos' is greater than string length 'len' 子字符串的终止位置大于字符串长度

672 Out of memory 内存不足

718 Cannot allocate temporary array -- out of memory 由于内存不足不能分配临时数组

727 Cannot ALLOCATE allocatable array -- out of memory 由于内存不足不能分配数组

729 DEALLOCATE failure: ALLOCATABLE array is not ALLOCATED 释放没有被分配的数组

fortran调试经验

FORTRAN调试程序的时候注意的问题 调试程序的时候注意的问题。 程序编好,能够直接运行而且完全正确,基本不可能,这就有调试程序的问题。主要有一下几个方面: 其一,在每个子程序被调用的时候留个心眼,写个输出语句,表示程序已经运行到了这里。这样一个小提示会给调试带来巨大的方便,如果程序运行出错,至少你可以知道它是在运行到哪里出的错,这样,直接去检查那个程序就可以了。不必重头开始检查。 其二,注意对中间计算结果的输出。有时候,而且是很多的时候,程序编译成功,运行也没有问题,就是结果不对,这肯定是计算原理有问题,此时,输入一些重要步骤的中间结果,往往可以检查出问题所在。同时,就算查出了问题所在,也可以不删除这段输出中间计算结果的代码,有可能后面还会有用处,此时,在每行输出语句前加一个感叹号,把代码变成注释的绿体字就可以了。等到再次需要输出的时候,直接删除一个“!”比再写一遍输出代码,当然要简单的多。 其三,对WATCH功能的应用,FORTRAN提供的这个功能很实用,可以查很多问题,尤其是程序中间计算值,这个和上述的中间结果的输出有点相似。但两者的不同是前者可以进行中间结果的输出控制,就是只有符合了某个条件的才能被输出,这样可以便捷程序的调试,同时对中间结果输出后可以直接用STOP停止程序的运行,这样对于大型程序来说,节省了很多后面继续计算的时间——因为前面的结果已经不对了,后面的算也是白算。 其四,对中间结算结果输出形式的控制,一般来说,FORTRAN计算结果可以输出到文件里面和计算界面两个地方。对较大的计算结果,可以输出到文件里面,反之较少的结果可以直接输出到屏幕上,为了增强数据的可读性,最好进行有格式的数据输出,以利于相同性质的数据的比较。输出到屏幕上的结果直接用WRITE(6,*)就可以(无格式),对于输出到文件里面的数据,可以省些事情,直接用WRITE(X,*)就可以,其中X是一个任意的正整数,最好大于10,也不用事先对这个X设备进行说明,程序会将结果输出到一个FORT.X的文件里面,例如10,就是FORT.10,此时,用NOTEPAD或者ULTRA-EDIT都可以把它打开——FORT.10实质上就是一个.DAT的文件,你可以把它重命名。 3.对数据计算时的误差控制。 以前觉得小数点后的误差不是那回事,没有太在意,可经过实战,终于明白了小小的误差完全可以改变整个计算的结果。因此,如果程序能够输入结果而不正确时,除了寻找算法的问题,不要忽略的误差。一般认为,FORTRAN的REAL变量小数点后8位数字误差定义已经足够,而事实上,这个精度可能在一些情况下不满足,这个时候,需要用更精确的变量类型——REAL(8),同理,当要判断两个数是否相等的时候,一定要慎用相等判断(.EQ.)这个比较运算符,因为任何数据,别看着在现实中它们一定相等,在程序中就不一定了。一旦经过了计算,就不可避免的产生了舍入误差,对于整数和有限几位循环的有理数都问题不大,可一旦是一个无理数或者无限循环的小数,只有在判断了小数点后的每一位都相等的时候,程序才判断为相等成立。这个相等的标准是非常苛刻的,所以一般情况下,可行的方法是将

fortran语法手册

1 FORTRAN77四则运算符 + - * / ** (其中**表示乘方) 在表达式中按优先级次序由低到高为:+或-→*或/→**→函数→() 2 FORTRAN77变量类型 2.1 隐含约定:I-N规则 凡是以字母I,J,K,L,M,N六个字母开头的,即认为是整型变量,其它为实型变量。 如IMPLICIT REAL (I,J) 三种定义的优先级别由低到高顺序为:I-N规则→IMPLICIT语句→类型说明语句,因此,在程序中IMPLICIT语句应放在类型说明语句之前。 2.4 数组的说明与使用 使用I-N规则时用DIMENSION说明数组,也可在定义变量类型同时说明数组,说明格式为:数组名(下标下界,下标上界),也可省略下标下界,此时默认为1,例: DIMENSION IA(0:9),ND(80:99),W(3,2),NUM(-1:0),A(0:2,0:1,0:3) REAL IA(10),ND(80:99)使用隐含DO循环进行数组输入输出操作:例如WRITE(*,10) ('I=',I,'A=',A(I),I=1,10,2) 10FORMAT(1X,5(A2,I2,1X,A2,I4)) 2.5 使用DATA语句给数组赋初值 变量表中可出现变量名,数组名,数组元素名,隐含DO循环,但不许出现任何形式的表达式:例如 DATA A,B,C/-1.0,-1.0,-1.0/ DATA A/-1.0/,B/-1.0/,C/-1.0/ DATA A,B,C/3*-1.0/CHARACTER*6 CHN(10)

DATA CHN/10*' '/INTEGER NUM(1000) DATA (NUM(I),I=1,500)/500*0/,(NUM(I),I=501,1000)/500*1/ 3 FORTRAN77程序书写规则 程序中的变量名,不分大小写; 变量名称是以字母开头再加上1到5位字母或数字构成,即变更名字串中只有前6位有效; 一行只能写一个语句; 程序的第一个语句固定为PROGRAM 程序名称字符串 某行的第1个字符至第5个字符位为标号区,只能书写语句标号或空着或注释内容; 某行的第1个字符为C或*号时,则表示该行为注释行,其后面的内容为注释内容; 某行的第6个字符位为非空格和非0字符时,则该行为上一行的续行,一个语句最多可有19个续行; 某行的第7至72字符位为语句区,语句区内可以任加空格以求美观; 某行的第73至80字符位为注释区,80字符位以后不能有内容。 4 FORTRAN77关系运算符 .GT. 大于 .GE. 天于或等于 .LT. 小于 .LE. 小于或等于 .EQ. 等于 .NE. 不等于 .AND. 逻辑与 .OR. 逻辑或 .NOT. 逻辑非 .EQV. 逻辑等 .NEQV. 逻辑不等 运算符优先级由高到低顺序为:()→**→*或/→+或-→.GT.或.GE.或.LT. 或.LE.或.EQ.或.NE.→.NOT.→.AND.→.OR.→.EQV.或.NEQV 5 FORTRAN77语句

华测静态数据处理流程

静态数据处理 一.静态测量的准备工作(简单介绍) (2) 二.数据下载: (3) 安装主机USB驱动: (3) 打开下载软件hcloader: (3) 输入测站信息: (3) 下载数据: (3) 三.数据处理操作过程 (4) 软件安装: (4) 安装软件狗驱动: (4) 数据处理过程 (4) 文件>新建项目 导入观测数据 查看,设置坐标系 基线处理 网平差 成果报告 附C、D、E 级GPS测量手簿记录格式 (6)

一.静态测量的准备工作(简单介绍) 在室内选点的时候要注意控制网的网形:正三角形是最好的网形(如上图),特长或特短边的出现(如下图)都会使误差增大。 在野外勘测时,尽量选择周围无遮挡、无高压线、无强电磁干扰的地方进行定点,观测,这样不仅可以保证精度,也可以减少内业处理的很多麻烦。 在外业测量时,切换到静态后,要查看数据记录指示灯(黄灯)是否有规律闪烁(间隔5秒),否则重新启动接收机,重新切换到静态。 外业观测时记录数据要全面(仪器号、点号、开机时间、关机时间、仪器高、等)。 已知控制点 未知待定点

二.数据下载: 安装主机USB驱动: 当第一次使用主机USB下载数据时,电脑会提示发现硬件,出现驱动程序安装向导, 选择驱动的保存路径(默认在COMP SS的安装路径下有`river/USB),点“下一步”即可完成安装; 打开下载软仦hcloader: 开始>娋序>华测静态处理>文件下载,点击即可。 设置连接端口:connection>settings>com选择USB、band rate选115200。 列表框里就会显示主机里有的文件(如果没有可以点击Update,稍等即可): 输入测站信息: 根据野外记录输入测站名(不超过4个字符,一般为?下端的4位仪器号)、时段(在同一点上不同时间观测的数据,目的是区别文件名)、天线高(野外实地所量测的仪器高,一般为仪器的斜高),选择文件类型(一般默认),确认即可。 下载数据: 选择需要下载的数据文件(可多选),右击鼠标数据导出,数据自动导出到之前指定的下载路径中。 下载完毕关闭软件即可。

一些 免费的fortran编译器

一些免费的fortran编译器 https://www.doczj.com/doc/a51639962.html,/node/8 Free Fortran Compilers 取自https://www.doczj.com/doc/a51639962.html,/compilers/fortran.shtml This page lists free Fortran compilers for various operating systems. Some of the compilers are compliant with the ANSI Fortran 77 specifications, others with Fortran 95, and so on. Some of them may also come complete with debuggers, editors and an integrated development environment (IDE). If you need a book on Fortran, you may want to check out the selection of books available at https://www.doczj.com/doc/a51639962.html,. Disclaimer The information provided on this page comes without any warranty whatsoever. Use it at your own risk. Just because a program, book or service is listed here or has a good review does not mean that I endorse or approve of the program or of any of its contents. All the other standard disclaimers also apply. Free Fortran Compilers and IDEs Sun Studio Compilers and Tools Sun Studio Compilers and Tools for Linux and Solaris OS on Sparc and x86/x64 platforms includes command line tools as well as a NetBeans-based IDE for developing, compiling and debugging C, C++ and Fortran programs. It also includes performance analysis tools. Intel Fortran Compiler for Linux

fortran常见问题解决

楼主为了减少重复回答问题,特编此帖,并不定期添加和更新内容。 错误难免,欢迎讨论,仅供参考。 很多人问哪里可以找到Fortran编译器,有不少热心学友提供网址,特汇集在这里。虽然俺检验过这些链接,但是它们不一定总有效。 Fortran编译器下载: CVF? FTN95(License:Freeforpersonaluse) 以下操作,如无特别说明,都是以为例。 1.如何加大Stacksize? 选Project=>Settings=>Link=>Category:Output=>? Stackallocations Reserve:这里填新值(默认为1M,若需要10M,则填) 2.如何用Fortran批量生成文件? 设要生成4000个文件,文件名为AA1-AA4000,如何写循环生成文件,而不用写4000次write 命令呢? 用内部文件: character(len=80)::filename,form integer::i doi=1,4000 selectcase(i) case(1:9) write(form,'(i1)')i case(10:99) write(form,'(i2)')i case(100:999) write(form,'(i3)')i case(1000:9999) write(form,'(i4)')i endselect write(filename,*)"AA",trim(form),".TXT" open(10,file=filename) write(10,*)i close(10)

enddo? stop end 3.如何用Fortran动态生成输出格式? 设有一个数组data(100),输出时,希望每行输出num个数,而num由用户输入,如何实现? 用内部文件: character(len=80)::form real::data(100) integer::i,num data=(/(i,i=1,100)/)/ read(*,*)num write(form,*)"(",num,"" write(*,form)data stop end 4.MS是不是很垃圾? 是垃圾,其中Bug太多,多到不可用的地步! 在这个主题里,换了CVF后问题就没了的人已有相当的数目。 如果你用,遇到莫名其妙的错误,建议换,这是一个比较成熟的编译器。 5.如何用F90/95生成随机数? 注意: 现在计算机产生的随机数都是伪随机数。 random_number(x)产生一个0到1之间的随机数(x可以是向量),但是每次总是那几个数。用了random_seed()后,系统根据日期和时间随机地提供种子,使得随机数更随机了。 programrandom implicitnone real::x callrandom_seed()!系统根据日期和时间随机地提供种子 callrandom_number(x)!每次的随机数就都不一样了 write(*,*)x stop endprogramrandom 6.函数/子程序超载的例子

(完整)Fortran经典编程语言笔记(你值得拥有)

FORTRAN笔记 2014.10.07 目录 第七讲_FORTRAN的基本知识.ppt (2) FORTRAN语言程序设计初步 (2) FORTRAN源程序的书写格式(以77为例) (2) 变量 (2) 变量类型 (2) 算术运算符和运算优先级 (3) 赋值语句 (3) 参数语句(PARAMETER语句) (3) END语句 (3) PAUSE语句 (3) 逻辑运算和选择结构 (4) 关系表达式 (4) FORTRAN中数组的定义及使用 (4) 其他 (5) 1. fortran语言定义CHARACTER*6 TTL(14,3),CNAM(400)是什么意思? (5) 2. fortran里character*10 是什么意思 (5) 3. Fortran中kind是什么函数? (5)

第七讲_FORTRAN的基本知识.ppt FORTRAN语言程序设计初步 FORTRAN是Formula Translation的缩写,意为“公式翻译”,它是为科学、工程问题或企事业管理中的那些能够用 数学公式表达的问题而设计的,其数值计算的功能较强。 常用的是FORTRAN77和FORTRAN90两种标准。 1、一个程序由若干个程序单位组成。主程序和每一个子程序分别是一个独立的程序单位。 2、每一个程序单位都是以“END”结束的。 3、一个程序单位包括若干行。 1)语句行。由一个FORTRAN语句组成。 2)非语句行,即注释行。 4、FORTRAN程序中的语句可以没有标号,也可以有标号,根据需要而定。标号的作用是标志一个语句以便被其 他语句引用。 5、一个程序单位中各类语句的位置是有一定规定的。 6、FORTRAN源程序必须按一定的格式书写。 FORTRAN源程序的书写格式(以77为例) 每一行有80列,分别如下: 1、第1-5列为标号区。一行中第一列为“C”或“*”,该行即被认为是注释行。 2、第6列为“续行标志区”,如果在一行的第6列上写一个非空格和非零的字符,则该行作为其上一行的续行。 3、第7-72列为语句区。 4、第73-80列,注释区。 变量 变量名:一个变量需要用一个名字(变量名)来识别。在同一个程序单位中不能用同一个变量名代表两个不同的变 量。 FORTRAN的变量名按以下规则选定: 1)第一个字符必须是字母,即变量名必须以字母开头; 2)在一个字母后面可以跟1-5为数字或字母。 如果选定的变量名超过6个字符,则只有前面6个字符有效。 注:在变量名中大写与小写字母是等价的。 变量类型 整型变量Integer、实型变量Real、双精度变量Double Precision、复型变量Complex、逻辑型变量Logical和字符型变量Character。 1、隐含约定(I-N规则) FORTRAN规定:在程序中的变量名,凡以字母I,J,K,L,M,N六个字母开头的,即认为该变量为整型变量。 在程序中,凡是变量名以字母I,J,K,L,M,N,i,j,k,l,m,n开头的变量被默认为整型变量,以其他字母开头的变量被 默认为实型变量。 2、用类型说明语句确定变量类型 1)INTEGER语句(整型说明语句) 2)REAL语句(实型说明语句) 3)DOUBLE PRECISION语句(双精度说明语句) 4)COMPLEX语句(复型说明语句) 5)LOGICAL语句(逻辑型说明语句)

华测常见问题解决办法

华测常见问题解决办法 一、蓝牙问题:手簿显示打开端口失败 1、点击配置——手簿端口配置——配置,查看蓝牙是否打开。 2、点击配置——手簿端口配置,查看连接类似是否是蓝牙,端口是否是COM8 或者是COM9,再点击确定就能连上。 3、手簿和移动站的距离太远了,手簿靠近移动站2米内的距离,点击配置—— 手簿端口配置——确定。 4、通过以上操作还是显示打开端口失败的话,就把移动站主机关机开机下,等 待10秒后,点击配置——手簿端口配置——确定,就可以连上蓝牙了。 5、通过关机开机还是显示打开端口失败的话,开机查看是否显示所有灯都同时 闪3次,然后红色灯是否单独闪3次,如果是红色灯有闪3次表示蓝牙启动起来;否则蓝牙未启动起来。蓝牙未启动情况,请拨打技术电话联系厂家技术员。 二、仪器的问题:手簿一直显示正在搜星。 1、点击仪器——仪器接收机复位下,稍等会便可以固定了。 2、把仪器关机开机下,稍等会便可以固定了。 3、如果以上操作还是不行,请联系厂家技术员。 三、点校正的问题:点校正里面找不到所测量的GPS点。 1、在配置——移动站参数——移动站选项里,把使用VRS打上勾,便可以在点 校正里找到所测量的GPS点。 六、点校正计算后,水平残差和垂直残差超出误差范围,水平残差很大。(水平 残差大于0.02,垂直残差大于0.03) 1、检查坐标系统和中央子午线是否输错,一般坐标系统用北京54或西安80, 福建这边中央子午线(宁德,福州,莆田的中央子午线是120,南平,三明,龙岩的中央子午线输117,厦门输118.30),关于工程设计资料上都有提供的,请翻阅查看。 2、检查输入的已知点坐标是否正确。 3、检查实际测量的GPS点是否正确,会不会在实地测量测错了。 4、检查点校正时,是否不小心把对应的点对应错了,已知点和测量的GPS点要 一一对应起来。 点校正时的注意事项: 1、已知点最好要分布在整个作业区域的边缘,能控制整个区域,并避免短边控制长边。例如,如果用四个点做点校正的话,那么测量作业的区域最好在这四个点连成的四边形内部; 2、一定要避免已知点的线形分布。例如,如果用三个已知点进行点校正,这三

ABAQUS常见错误与警告信息汇总

*************************错误与警告信息汇总************************* --------------简称《错误汇总》 %%%%%%%%%%%%%%% @@@ 布局 @@@ &&&&&&&&&&&&&&&&&&&&&& AB系列:常见错误信息 C系列:常见警告信息 D系列:cdstudio斑竹总结的fortran二次开发的错误表 E系列:网格扭曲%%%%%%%%%%%%%%%%% @@@@@@ &&&&&&&&&&&&&&&&&&&&&&&&& 模型不能算或不收敛,都需要去monitor,msg文件查看原因,如何分析这些信息呢?这个需要具体问题具体分析,但是也存在一些共性。这里只是尝试做一个一般性的大概的总结。 如果你看见此贴就认为你的warning以为迎刃而解了,那恐怕令你失望了。不收敛的问题千奇万状,往往需要头疼医脚。接触、单元类型、边界条件、网格质量以及它们的组合能产生许多千奇百怪的警告信息。企图凭一个警告信息就知道问题所在,那就只有神仙有这个本事了。一个warning出现十次能有一回参考这个汇总而得到解决了,我们就颇为欣慰了。 我已霸占2楼3楼4楼,以便分类并续加整理。 斑竹可随意编辑或者添加你们觉得合适的条目和链接,其他版友有warning方面的疑问请回复到这个帖子,大家集思广益,斑竹们也可以集中讨论并定期汇总到1-4楼。 类似于: Fixed time is too large Too many attamps have been made THE SOLUTION APPEARS TO BE DIVERGING. CONVERGENCE ISJUDGED UNLIKELY. Time increment required is less than the minimum specified 这样的信息几乎是无用信息(除了告诉你的模型分析失败以外,没有告诉你任何有用的东西)。宜再查找别的信息来考察。根据经验,改小增量步也不一定能收敛,虽然也有人报告过改好的先例,我是从来没有遇到过,也从来没有那个奢望。所以我一般从模型的设置入手。原则上本贴只欢迎以下回帖: 1)你出现了已经解决的错误信息or解决不了的错误信息,可以回帖附上信息,并对模型和症状加以描述(斑竹会酌情加分); 2)你发现某个帖子有已经解决的错误信息or解决不了的错误信息, 可以提供链接(斑竹会加分); 3)你发现某一条错误信息可能还存在别的情况or别的应对方案, 可以回帖说明(斑竹会加分) 必须说明的是:Error和warning的性质是完全不同的。Error意味着运算失败,but出现warning可能还能算,而且有些运算必定会出现warning(比如接触分析必定出“负特征值”,下有详述)。很多警告只是通知性质的,或者只是说明一下而已,不一定都是模型有问题。比如以下warning完全可以忽略: xxxxx will (not)printed,这种只是通知你一声,某些玩意儿不输出了。还有: The parameter frequency cannot be used with the parameter field. It will be ignored(都说某某被ignored了).

FORTRAN内部函数库

FORTRAN内部函数 用FORTRAN解题往往要用到一些专门运算,如求三角函数sinx, cosx,对数lnx,指数ex,求一组数中最大数和最小数等。 FORTRAN提供了一些系统函数(称为内部函数)来完成这些运算。程序设计者不必自己设计进行这些运算的语句组(即程序段或子程序),只需写出一个函数的名字以及给出一个或若干个自变量,就可以得到所需的值,例如: SQRT(4.0)求出4.0的平方根, SIN(2.0)求出2(弧度)的正弦值, EXP(3.5)求出e3.5, LOG(3.0)求出3, 常用的函数如下表,FORTRAN77提供的全部函数明细见FORTRAN77内部函数。 函数名含义应用例子相当于数学上的运算 ABS 求绝对值ABS(A) |a| EXP 指数运算EXP(A) e^a SIN 正弦值SIN(X) sin x COS 余弦值COS(X) cos x ASIN 反正弦ASIN(X) sin^(-1)a ACOS 反余弦ACOS(X) cos-1a TAN 正切TAN(X) tan x ATAN 反正切ATAN(A) tan^(-1)a LOG 自然对数LOG(A) lna,或loge(a) LOG10 常用对数LOG10(A) log10a INT 取整INT(A) int(a),取a的整数部分 MOD 求余MOD(A1,A2) a - int(a1/a2)*a2 SIGN 求符号SIGN(A1,A2) |a1|(若a2>0) -|a1|(若a2<0) REAL 转换为实型REAL(I) MAX 求最大值MAX(A1,A2,A3) max(a1,a2,a3) MIN 求最小值 MIN(A1,A2,A3) min(a1,a2,a3) 说明: (1)FORTRAN77将这些系统函数分别编成一个个子程序,组成函数库,存贮于外部介质(如磁盘)上。在完成源程序的编译之后,用LINK命令实现连接,即将已翻译成二进制指令的目标程序与函数库连接。也就是将程序中出现函数名的地方用函数库中相应的一组指令代入之,组成一个统一的“可执行目标块”。例如,程序中出现一个SIN函数,在连接时就将一组二进制指令(它们是实现求正弦值的运算的)直接插入到程序中出现SIN的地方。由于是插入到程序内部的,所以称为“内部函数”。 (2)一个内部函数要求一个或多个自变量。例如,SQRT函数只能有一个自变量SQRT(4.6),MOD函数要求两个自变量MOD(8,3),MAX和MIN函数要求两个以上自变量MAX(6,-8,10),MIN(-6,8,0)。当自变量个数规定为2个时,自变量的顺序不应任意颠倒,MOD(8,3)表示8被3除的余数,其值为2,而MOD(3,8)则表示3被8除的余数,其值为3。当自变量个数>2时,自变量的顺序无关,MAX(6,8,10)和MAX(8,10,6)结果是一样的。

fortran课后习题答案

第一章 FORTRAN程序设计基础第15页 1、2 1.简述程序设计的步骤。 “程序设计”:反映了利用计算机解决问题的全过程,通常要经过以下四个基本步骤:(1)分析问题,确定数学模型或方法;(2)设计算法,画出流程图;(3)选择编程工具,编写程序;(4)调试程序,分析输出结果。 2. 什么是算法?它有何特征?如何描述算法? 解决问题的方法和步骤称为算法。 算法的五个特征:(1) 有穷性。 (2) 确定性。 (3) 有效性。 (4) 要有数据输入。(5) 要有结果输出。 算法的描述有许多方法,常用的有:自然语言、一般流程图、N-S图等。 第二章顺序结构程序设计 第29页 1、2、3、4、5、6、7、8、9 1.简述符号常量与变量的区别? 符号常量在程序运行过程中其值不能改变。变量在程序运行过程中其值可以改变。 2. 下列符号中为合法的FORTRAN 90标识符的有哪些? (1) A123B (2) M%10 (3) X_C2 (4) 5YZ (5) X+Y (6) F(X) (7) COS(X) (8) A.2 (9) ‘A’ONE (10) U.S.S.R. (11) min*2 (12) PRINT 3. 下列数据中哪一些是合法的FORTRAN常量? (1) 9,87 (2) .0 (3) 25.82(4) -356231 (5) 3.57*E2 (6) 3.57E2.1 (7) 3.57E+2(8) 3,57E-2 4. 已知A=2,B=3,C=5(REAL);且I=2,J=3(INTEGER),求下列表达式的值: (1) A*B+C 表达式的值: 11 (2) A*(B+C) 表达式的值: 16 (3) B/C*A 表达式的值: 1.2 (4) B/(C*A) 表达式的值: 0.3 (5) A/I/J 表达式的值: 0.33 (6) I/J/A 表达式的值: 0 (7) A*B**I/A**J*2 表达式的值: 4.5 (8) C+(B/A)**3/B*2. 表达式的值: 7.25 (9) A**B**I 表达式的值: 512 5. 将下列数学表达式写成相应的FORTRAN表达式: (1) 1E-2 (2)(-B+SQRT(B*B-4*A*C)/(2*A) (3) 1+X+X*X/2+X**3/2/3 (4) COS(ATAN((A**3+B**3)**(1.0/3)/(C*C+1))) (5) EXP(A*X**2+B*X+C) (6) COS(X*Y/SQRT(X*X+Y*Y))**3 6. 用FORTRAN语句完成下列操作: (1) 将变量I的值增加1。I=I+1 (2) I的立方加上J,并将结果保存到I中。 I=I**3+J (3) 将E和F中大者存储到G中。G=Max(E,F) (4) 将两位自然数N的个位与十位互换,得到一个新的数存储到M中(不考虑个位为0的情况) M=MOD(N,10)*10+N/10 第三章选择结构程序设计第43页 1、2、3、5、6、7、9 1.分析下列程序运行结果 (1) LOGICAL P INTEGER I,I1,I2,I3 P=.FALSE. READ*,I I1=MOD(I,10) I2=MOD(I/10,10) I3=I/100

ADINA常见问题解答

ADINA常见问题解答 一般问题 Q:怎样改进ADINA-AUI 中实体的显示效果? A:在某些情况下,ADINA-AUI 显示的实体在边界上不光滑,这仅仅是显示的问题,并不影响几何尺寸的精确度。为了改进显示的效果, 1 点击Modify Mesh Plot 。 2 点击Line Depiction 。 3 将ADINA-M Chord Angle 由默认的0.4改为0.1 并且点击OK。 4 点击Surface Depiction 。 5将ADINA-M Chord Angle 由默认的0.4改为0.1 并且点击OK。 6 点击OK,关闭Modify Mesh Plot 对话框。 Q:为什么AUI 的图形功能在我的计算机上不能正常的工作? A:有些计算机的显卡在Open GL 图形系统中不能正常的工作。请切换到Windows GDI 图形系统,在Edit 菜单中,点击Graphics System ,然后选择Windows GDI 图形系统。 Q:当我从ADINA-AUI 打印文件时,为什么打印不出来任何结果? A:注意只有Windows 版本才会发生这样的问题。 当使用Open GL 图形方式时,有的打印机会出现上述问题。为解决该问题,当打印的时候,选择Windows GDI 图形方式。从菜单Edit > Graphics System…中选择Windows GDI 作为图形系统,然后开始打印。注意打印结束后,可以将图形系统切换回Open GL 以便获得更快的图形效果。 Q:为什么安装了浮动License(Floating Industry或者Floating Educational)后,Adina无法启动? A:如果安装过程正确,而且电脑上的防火墙不阻止Adina读取服务器上的License,那么这样的问题一般是由于计算机使用了中文名。不论是Adina的服务器还是Adina客户端,都不允许使用中文计算机名。 Q:如何将壳单元厚度显示出来? A:在Display-->Geometry/Mesh Plot-->Modify打开的窗口中点击Element Depiction,在新打开的窗口中的Shell Element Attributes域中选择Top/Bottom(默认是Mid-Surface)。 有关界面启动 Q:怎样在Windows 版本中以批处理的方式运行ADINA? A:在Windows 版本中,ADINA 常常是在交互方式下运行。然而,有时为了连续进行几项作业,则必须在批处理方式下运行。 以批处理方式运行ADINA-AUI 的命令为: ...\aui.exe -b -m [b|w] .[in|plo] 这里…\ 是指aui.exe 的全路径名。 值可以用bytes(b) 或者 words(w) 来定义。1 word = 4 bytes 。 例如,在批处理方式下运行prob02.in 文件,并且分配20Mb 内存(假设aui.exe 安装在c:\adina\bin) ,命令行就是: c:\adina\bin\aui.exe -b -m 20mb prob02.in 注意在定义 值时,m 可以是m(Mega)、k(Kilo)、g(Giga) 。 选项-b的含义是用adina-aui读一遍命令流,但是不打开adina-aui(如果命令流中有生成dat文件的命令行,则会自动生成一个dat文件。)。如果不用-b选项,会看到打开adina-aui,并且打开模型。批处理方式下运行ADINA 求解器的命令行是: ...\.exe -b -s -m [b|w] -M [b|w] -t <#cpu> .dat 这里.exe 是adina、adinaf、adinat、adfsi或者adtmc ,…\ 是指.exe 的全路径名。 是分配给sparse solver 内存值,<#cpu> 定义了cpu 的数目。 例如,在批处理方式下运行prob02.dat 文件,分配10Mw 的内存给ADINA求解器,分配100Mw 的内存给sparse solver ,使用2个cpu ,命令行如下所示(假设adina.exe 安装在c:\adina\bin ): c:\adina\bin\adina.exe -b -s -m 10mw -M 100mw -t 2 prob02.dat 选项-b和-s是为了保证求解完成后自动关掉求解器窗口。 以下是当ADINA安装在c:\adina目录下时,顺序求解两个模型(prob02.in和prob03.in)的批处理文

fortran常见错误

FAQ之常见错误 2014-02-02 13:45:35 来源:Fcode研讨团队评论:2点击:4419 本文从编译错误,链接错误,运行时错误,计算结果错误等四个方面介绍了常见的错误及解决思路。适合初学者阅读。 首先应该明确:错误有哪几种?我们当前遇到的是何种错误? 阐述这些问题前,我们先讨论一下常规的应用程序开发的过程: 1>>编写代码,使用一个或多个源代码文件。 2>>对第一步的每一个源代码文件执行编译操作。得到一个或若干个目标代码。 3>>将目标代码,运行时库(Run-time Library)和其他使用到的函数库链接起来。得到一个可执行文件(EXE 或其他) 4>>编写程序的说明书,必要的(输入)数据文件 5>>将上述得到的结果发布给用户。(发布的方式可以是刻录成光盘,销售,放在网站上供别人下载,或者其他) 6>>用户得到程序后,运行,输入数据,得到计算结果。 对于很多 Fortran 程序员来说,可能用户就是自己,也可能仅仅是自己教研室的同事同学。所以第4,5,6步骤很多时候不明显。而如果使用集成开发环境(IDE)进行开发,第1,2,3步骤又可以一键完成。因此,很多初学者就认为,写程序就是:输入代码,运行,得到结果。这样的理解太狭义。 不管我们面对什么使用者来写代码,程序开发应该是上述的过程。我们的编译器,编译环境,也是为这个过程而设计的。 于是,我们将错误分为四种: 一. 编译错误(发生在第2步) 编译错误,一般是源代码书写格式不正确,不符合语法要求。 二. 链接错误(发生在第3步) 链接错误,一般是源代码结构不完整,运行时库或函数库使用不合理。 三. 运行时错误(发生在第6步) 运行时错误,一般是执行代码时,遇到了事先未料及的错误。比如内存不足了,磁盘空间不够了,输入文件格式不对了,输出文件写入失败了等等。 四. 计算结果不符合预期(程序代码不规范,或不符合你的设想) 计算结果不符合预期,可能性就很多了。语法与你的想法不一致,超出函数库的适用范围,执行流程控制不当等等。 这四种错误,其排查难度依次增大。也就是,编译错误最容易排查和修改,而计算结果不正确,最让人头疼。

fortran基本函数

FORTRAN 90标准函数(一) (2012-07-03 17:14:57) 转载▼ 分类:学习 标签: fortran 函数 教育 符号约定: ●I代表整型;R代表实型;C代表复型;CH代表字符型;S代表字符串;L代表逻辑型;A代表数组;P代表指针;T代表派生类型;AT为任意类型。 ●s:P表示s类型为P类型(任意kind值)。s:P(k)表示s类型为P类型(kind值=k)。 ●[…]表示可选参数。 ●*表示常用函数。

注:三角函数名前有C、D的函数为复数、双精度型函数。 注:指数函数名、平方根函数名、对数函数名前有C、D的函数为复数、双精度型函数。 表4 参数查询函数

atan2函数的值域是多少?我从网上找到一个fortran函数的日志,说此值域是-π~π,但正常反正切函数的值域应该是-π/2~π/2。对atan2函数不够了解,所以不知道你的答案对不对,我个人认为不对。我是用正常的反正切函数atan(v/u)来算的: FORTRAN: if (u>0..and.v>0.) dir=270-atan(v/u)*180/pi if (u<0..and.v>0.) dir=90-atan(v/u)*180/pi if (u<0..and.v<0.) dir=90-atan(v/u)*180/pi if (u>0..and.v<0.) dir=270-atan(v/u)*180/pi if (u==0..and.v>0.) dir=180 if (u==0..and.v<0.) dir=0 if (u>0..and.v==0.) dir=270 if (u<0..and.v==0.) dir=90 if (u==0..and.v==0.) dir=999 其中uv等于零的五种情况要单独挑出来,不然程序会有瑕疵。atan函数换成atand函数的话直接是度数,不用*180/pi 我四个象限和轴都试了,应该没错。 最需要注意的问题,一个是函数值域,另一个是uv矢量方向和风向是反着的,并且风向角度数是从正Y轴开始顺时针算,和三角函数里度数从正X轴开始逆时针算不一样。

华测静态数据处理流程

静态数据处理 一.静态测量得准备工作(简单介绍) ............................................................................................... 2 二.数据下载: (3) 安装主机USB 驱动: ................................................................................................................ 3 打开下载软件hcloader: ........................................................................................................... 3 输入测站信息:.......................................................................................................................... 3 下载数据: ................................................................................................................................. 3 三.数据处理操作过程 . (4) 软件安装: ................................................................................................................................. 4 安装软件狗驱动:...................................................................................................................... 4 数据处理过程 (4) 文件>新建项目 导入观测数据 查瞧,设置坐标系 基线处理 网平差 成果报告 附 C 、D 、E 级GPS 测量手簿记录格式 (6) 一.静态测量得准备工作(简单介绍) (如上图),特长或特短边得出现(如下图)都会使误差增大。 在野外勘测时,尽量选择周围无遮挡、无高压线、无强电磁干扰得地方进行定点,观测,这样不仅可以保证精度,也可以减少内业处理得很多麻烦。 在外业测量时,切换到静态后,要查瞧数据记录指示灯(黄灯)就是否有规律闪烁(间隔5秒),否则重新启动接收机,重新切换到静态。 已知控制点 未知待定点

fortran中批处理实现

********************************************* fortran中批处理命令的实现函数: 利用systemqq命令(需要调用DFLIB 数据库) ********************************************* 例1: USE DFLIB character*100 CMD LOGICAL(4) res CMD="dir/a-d/b/s "//trim(fPath)//" >"//trim(outPut) res=SYSTEMQQ(CMD) 例2: USE DFLIB LOGICAL(4) result result = SYSTEMQQ('copy e:\dir.txt e:\test\dir.txt') !将e:\dir.txt 复制到e:\test\dir.txt文件中。!****************实例3:复制文件************************* 例3: programmain_pro USE DFLIB implicit none integer,parameter::sta_num=123 character(5),dimension(sta_num)::sta_ID character(500)::filein,fileout character(5000)::cmd logical(4)::judge

integer::status,is open(1,file='山东.txt',status='old',action='read',iostat=status) read(1,*) do is=1,sta_num read(1,*) sta_ID(is) filein='Z:\data\降水逐小时数据-戴至修\precip_data\'//sta_ID(is)//'_precip.txt' open(2,file= filein,status='old',action='read',iostat=status) if(status/=0) goto 1000 fileout='Z:\data\降水逐小时数据-戴至修\山东省-降水数据\'//sta_ID(is)//'_precip.txt' cmd='copy '//filein//' '//fileout judge=SYSTEMQQ( cmd) 1000 continue enddo end program

相关主题
文本预览
相关文档 最新文档