fortran常见问题解决

合集下载

Fortran-运行中给出的系统错误及解决方法

Fortran-运行中给出的系统错误及解决方法

. Fortran 运行中给出的系统错误及解决方法以下均为linker tools errors and warningsLinker Tools Error LNK1000unknown error; consult documentation for technical support options Note the circumstances of the error, try to isolate the problem and create a reproducible test case, then contact technical support.Linker Tools Error LNK1101incorrect MSPDBxx.DLL version; recheck installation of this product The version of MSPDBxx.DLL available on your system does not match the version required by this tool.Linker Tools Error LNK1102out of memoryThere was not enough memory for the tool to run. Probably the paging file exceeded available disk space. If a shortage of disk space is not the cause, note the circumstances of the error, try to isolate the problem and create a reproducible test case, then request technical support.Linker Tools Error LNK1103debugging information corrupt; recompile moduleProbably the compilation was terminated before a valid object file was created.Recompile the given object file. If recompiling does not correct the problem,note the circumstances of the error, try to isolate the problem and create a reproducible test case, then consult technical support.Linker Tools Error LNK1104cannot open file "filename"The tool could not open the given file. One of the following may be a cause:l There was not enough disk space.l The file does not exist.l The filename or its path was incorrectly specified.l The specified drive is invalid.l The file does not have the appropriate permissions.l The path for filename expands to more than 260 characters.l If the given file is named LNKn, which is a filename generated by the linker for a temporary file, then the directory specified in the TMP environment variable may not exist, or more than one directory is specified for the TMP environment variable. (Only one directory path should be specified for the TMP environment variable.) l If the error occurs on the executable filename, an earlier version of the executable may still be running. You will need to terminate the executable before linking it. In Windows NT (including Windows 2000) or Windows 95,you can use the utility PVIEWto look for and kill instances of the application.l If the error message occurs for a library name, and you recently ported the .MAK file from a previous Microsoft Visual C++ developmentLinker Tools Messages Page 3 of 37environment, the library may no longer be valid. Ensure that the library still exists in this circumstance.l If the error message occurs for a library name such as CONSOLE.LIB, and you included object modules from an older Fortran developmentenvironment such as Microsoft Fortran PowerStation, recompile all source files with Visual Fortran to create new object files and libraries.Linker Tools Error LNK1105cannot close file "filename"The tool could not close the given file. Possibly there was insufficient disk space available.Linker Tools Error LNK1106invalid file or disk full: cannot seek to locationThe tool could not read or write to location in a memory-mapped file:l Your disk may be too full to complete the link. Free up some space and try the link again.l The error may be a result of trying to link over a network. Some networks do not fully support the memory-mapped files used by the linker. Try linking on your local disk to see if that fixes the problem.l There may be a bad block on your disk. Although the operating system and disk hardware should have detected such an error, you may want to run a disk checking program.Linker Tools Error LNK1107invalid or corrupt file: cannot read at locationThe tool could not read the file. Recreate the file.Linker Tools Error LNK1108cannot write file at locationThe tool could not write to the file. One of the following may be a cause:l There was not enough disk space to create the file.l The drive being written to was not available, possibly due to a network problem.Linker Tools Error LNK1109cannot remove file "filename"LIB could not delete the given file. Before LIB writes the new version of a library, it removes the existing library file. One of the following may be a cause:l The given file does not have the appropriate permissions.l The drive containing the file was not available, possibly due to a network problem.Linker Tools Error LNK1110Linker Tools Messages Page 4 of 37cannot rename file "filename"LIB could not rename the given file. When LIB builds a new version of a library, it creates a temporary file, then renames the file. One of the following may be a cause:l The given file does not have the appropriate permissions.l The drive containing the file was not available, possibly due to a network problem.Linker Tools Error LNK1111invalid /BASE argument "argument"The /BASE option was incorrectly specified. Either no argument was specified or argument is not a number.Linker Tools Error LNK1112module machine type "type1" conflicts with target machine type "type2"The object files specified as input were compiled for different machine types.Linker Tools Error LNK1113invalid machine typeThe machine type specified in the object header is not valid. Probably the file is corrupt. Rebuild the object. See Corrupt Object File for more information.Linker Tools Error LNK1115/MACHINE option requiredLINK or LIB cannot determine the machine type for objects that are provided entirely from libraries. Either specify the /MACHINE option with the appropriate machine type or specify at least one object file in the input.Linker Tools Error LNK1117syntax error in option "option"The given option was not correctly specified.Linker Tools Error LNK1118syntax error in keyword statementThe given module-definition statement was not correctly specified.Linker Tools Error LNK1119invalid ordinal number "argument"The argument following the at sign (@) in an ordinal specification was not a valid number. An ordinal number is an optional argument in either an /EXPORT option in a LINK or LIB command or an EXPORTS statement in a moduledefinitionfile. It is an index into the exports table. The number must be aninteger in the range 1-65535.Linker Tools Error LNK1120number unresolved externalsLinker Tools Messages Page 5 of 37Error LNK1120 gives you a count (number) of unresolved externals for this link. The conditions that cause unresolved externals are described with errorLNK2001 (see Linker Errors LNK2001 to LNK2014), which precedes this error message (once for each unresolved external).Linker Tools Error LNK1121duplicate ordinal number "number"The given ordinal number was specified more than once in either an /EXPORT option in a LINK or LIB command or an EXPORTS statement in a moduledefinition file. Ordinal numbers must be unique integers in the range 1-65535.Linker Tools Error LNK1123failure during conversion to COFF: file invalid or corruptThe object or resource could not be converted to COFF. This tool requires the format of all input files to be COFF. If an input file is not COFF, the tool runs aconversion tool, either CVTOMF (to convert 32-bit OMF objects) or CVTRES (to convert resource files). This error is preceded by errors or warnings from the conversion tool. One of the following may be a cause:l The file is corrupt.l The file is not a valid file type. An example of an invalid type is a 16-bit OMF object.Linker Tools Error LNK1127library is corruptThe library file is corrupt. Rebuild the library.Linker Tools Error LNK1129cannot find resolution for weak extern symbolThe given weak external symbol does not have a default resolution. Probablythe symbol table is corrupt. Rebuild the object file. See Corrupt Object File for more information.Linker Tools Error LNK1130Linker miscalc (base relocations off by number)There was not enough space in the image to write base relocations.Linker Tools Error LNK1131no library file specifiedThe LIB /EXTRACT command required a library as input, but a library filename was not specified.Linker Tools Error LNK1132invalid format for MS-DOS stub file "filename"The filename specified with the /STUB option was not a valid real-mode MS-DOS executable (.EXE) file.Linker Tools Messages Page 6 of 37Linker Tools Error LNK1136invalid or corrupt fileThe input file either has a corrupt header or is zero size or abnormally small. See Corrupt Object File for more information.Linker Tools Error LNK1137invalid argument specified with /SECTIONEither the name or the attributes argument to the /SECTION option is specified incorrectly.Linker Tools Error LNK1140too many modules for program database; relink with /PDB:NONEThe project contains more than 4096 modules. One of the following is asolution:l Relink using /PDB:NONE.l Compile some modules without debugging information.l Reduce the number of modules.Linker Tools Error LNK1141failure during build of exports fileLINK could not build the exports (.EXP) file. Causes of this error include system problems such as insufficient memory and syntax errors in options or moduledefinitionstatements. This error is preceded by another error that givesadditional information.Linker Tools Error LNK1143invalid or corrupt file: no symbol for COMDAT section numberThe object file is corrupt. Rebuild the file. See Corrupt Object File for more information.Linker Tools Error LNK1144error with LINK_REPRO var; cannot open "filename"The linker could not create filename. One of the following may be a cause:l Check that you've set your LINK_REPRO environment variable to anexisting directory and not the current directory.l Make sure there are no read-only files in the directory.l Make sure none of the files in the LINK_REPRO directory are open byanother process, because the linker needs to write to them.Linker Tools Error LNK1145/MERGE created circular link for section "section"You attempted to merge a section into itself. Check the /MERGE options.Linker Tools Error LNK1146Linker Tools Messages Page 7 of 37no argument specified with option "option"The given option requires an argument.Linker Tools Error LNK1147invalid number specified with option "option"The argument to the given option was specified incorrectly.Linker Tools Error LNK1148failure during conversion to COFF: cannot copy temp file filenameEDITBIN could not convert the input file to COFF. When EDITBIN converts a file, it creates a temporary file, then copies the file. One of the following may be a cause:l The given file does not have the appropriate permissions.l There was not enough disk space to create the file.l The drive being written to was not available, possibly due to a network problem.Linker Tools Error LNK1149output filename matches input filename "filename"The output filename specified with the /OUT or /IMPLIB option was the same asan input file.Return to Main Linker Error PageLinker Errors LNK1152 to LNK1189Linker Tools Error LNK1152cannot resolve one or more undecorated symbolsThis error is preceded by one warning LNK4022 for each undecorated symbolthat could not be resolved and by at least two warnings LNK4006 for theduplicate symbols found for the undecorated symbol.Linker Tools Error LNK1153/VXD command-line option requiredYou attempted to build a virtual device driver without the /VXD option. Relink with the /VXD option.Linker Tools Error LNK1154specified import library filename matches exports file "filename"The filename specified with LINK /IMPORT or with LIB /DEF /OUT conflicted with the filename given by LINK or LIB to the exports file, which is formed from the base name of the main output file and the extension .EXP.Linker Tools Error LNK1155special symbol "symbol" already definedLinker Tools Messages Page 8 of 37The given symbol is reserved for use by LINK.Linker Tools Error LNK1156.sbss section not supportedAn object file contained an .sbss section.Linker Tools Error LNK1157fixup overflow; offset of target symbol "symbol" greater than +-8MBThe VXD is too large, or the sections are not arranged properly.Linker Tools Error LNK1158cannot run "filename"The given executable file called by LINK is not in the directory that contains LINK and is not in a directory specified in the PATH environment variable. Linker Tools Error LNK1159no output file specifiedNo name was specified for the main output file (executable file or DLL). LINK derives the default name of the output file from the base name of the first object file. If no object files are specified, and if the /OUT option is not used, this error occurs.Linker Tools Error LNK1160library with zero objects not allowedAn attempt was made to remove an object from a library that contained onlythat object. The object was not removed.Linker Tools Error LNK1161invalid export specificationEither the /EXPORT option or the EXPORTS module-definition statementincorrectly specified an export. A possible cause is a typing error.Linker Tools Error LNK1162expected aux symbol for comdat section numberThe linker expected to find an auxiliary symbol table for the indicated COMDAT but could not. The object file is probably corrupt. See Corrupt Object File for more information.Linker Tools Error LNK1163invalid selection for comdat section numberThe byte in the object file indicating the type of COMDAT section is invalid. The object file is probably corrupt. See Corrupt Object File for more information. Linker Tools Error LNK1164section section alignment (number) greater than /ALIGN valueThe alignment size for the given section in the object file exceeds the value specified with the /ALIGN option. The /ALIGN value must be a power of 2 and Linker Tools Messages Page 9 of 37must equal or exceed the section alignment given in the object file. Either recompile with a smaller section alignment or increase the /ALIGN value.Linker Tools Error LNK1165link failed because of fixup errorsThe build failed due to fixup errors. The /FORCE or /FORCE:UNRESOLVED option overrides this error.Linker Tools Error LNK1166cannot adjust code at offset=offset, va=valueLINK was unable to pad the code as required. Certain instructions are not allowed to cross page boundaries on some processors. LINK attempts to addpads to correct this situation. In this case, LINK could not work around the problem.Linker Tools Error LNK1167file contains relocs but header has no machine typeA converted COFF object did not have a machine type specified in its header. One cause of this error is omitting a machine type when converting a .RES file in a separate step before linking.Linker Tools Error LNK1168cannot open filename for writingThe given file does not have write permission.Linker Tools Error LNK1169one or more multiply defined symbols foundThe build failed due to multiple definitions of one or more symbols. This error is preceded by error LNK2005. The /FORCE or /FORCE:MULTIPLE option overridesthis error.Linker Tools Error LNK1170line in command file contains limit or more charactersThe length of a line in a command file must be less than the given limit. Linker Tools Error LNK1171unable to load filenameThe given DLL was unavailable. The possible locations for the DLL are the current directory, the system directory, the Windows directory, and the directories specified in the PATH environment variable.Linker Tools Error LNK1172more than one object with the name "object" found; rename object(s) orrelink /PDB:NONEA library contained two or more objects with the same name. Do one of the following:Linker Tools Messages Page 10 of 37l Rename the objects using unique names and rebuild the library.l Link using the /PDB:NONE option.Linker Tools Error LNK1173unable to find entrypoint function in filenameThe given function does not exist in the given DLL.Linker Tools Error LNK1174unable to /REBASE filename; not a valid Win32 imageThe format of the given file was invalid.Linker Tools Error LNK1175failed to /REBASE filenameThe rebase operation failed on the given file.Linker Tools Error LNK1177TOC size limit exceededThe linker was unable to create a TOC (Table of Contents) in your image file. The limit is 2048 entries in the TOC.Linker Tools Error LNK1178missing MODEND record; file is invalid or corruptThe linker tool tried to convert an OMF object module to COFF format but could not find an expected MODEND (module end) record in the OMF object. The OMF object module is corrupt and needs to be recreated or recopied. See Corrupt Object File for more information.Linker Tools Error LNK1179invalid or corrupt file: duplicate comdat comdatAn object module contained two or more COMDATs with the same name. Onepossible cause is if you use the Visual C++ /H option with the Visual C++ /Gy option. The /H option limits the length of external names, and the /Gy option packages functions in COMDATs.Linker Tools Error LNK1180insufficient disk space to complete linkThe linker tool was unable to complete a file operation since the operating system reported that the disk is full. Free up space on your local and network drives (if you are writing files there).Linker Tools Error LNK1181cannot open input file "filename"The linker tool could not find "filename" because it does not exist or the path was not found.Linker Tools Error LNK1182Linker Tools Messages Page 11 of 37cannot have more than 64K exportsYou have reached the linker's limit of 65,536 exports.Linker Tools Error LNK1183invalid or corrupt file: extended relocation count number less than 65535The COFF object file is corrupt since it contains an extended relocation count that is less than 0xFFFF. See Corrupt Object File for more information.Linker Tools Error LNK1184invalid section name "section" specified in option or directive "option"You gave the linker an invalid section name in option. Invalid section names contain "$" or blanks.Linker Tools Error LNK1185invalid section name "section" specifiedYou gave the linker an invalid section name in a .DEF file. Invalid section names contain "$" or blanks.Linker Tools Error LNK1186invalid or corrupt COFF object; reloc to undefined static symbol "symbol"Your COFF object module is corrupt since it contains a relocation entry for an undefined static symbol. See Corrupt Object File for more information.Linker Tools Error LNK1187Corrupt object - unmatched name relocation; ignoredYour object file contains bad relocation information. Recopy or recreate the object file. See Corrupt Object File for more information.Linker Tools Error LNK1188BADFIXUPSECTION:: invalid fixup target "symbol"; possible zero length section This message is issued only for VxD links when the target of a relocation does not have a section. With LINK386 (an older version), an OMF GROUP record (generated by a MASM GROUP directive) may have been used to combine thezero length section with another non-zero length section. COFF format does not support the GROUP directive and zero-length sections. When LINK automatically converts this type of OMF objects to COFF, this error may occur.Linker Tools Error LNK1189LIBTOOMANYMEMBERS:: library limit of number objects exceededThe limit of 65535 objects or members in a library has been exceeded.Return to Main Linker Error PageLinker Errors LNK1190 to LNK1581Linker Tools Error LNK1190Linker Tools Messages Page 12 of 37invalid fixup found, type typeThe object file has become corrupted. Recompile.Linker Tools Error LNK1194cannot delay-load dll name due to import of data symbol symbol name; relink without /DELAYLOAD:dll nameYou cannot delay load a DLL if data is imported from it.Linker Tools Error LNK1195target machine "machine" requires "option"Add the required option.Linker Tools Error LNK1196invalid or corrupt import object: unknown versionThe import library has become corrupted. Rebuild the library.Linker Tools Error LNK1197invalid or corrupt import object: unknown typeThe import library has become corrupted. Rebuild the library.invalid or corrupt import object: unknown name typeThe import library has become corrupted. Rebuild the library.Linker Tools Error LNK1199invalid or corrupt import object: non-zero reserved fieldsThe import library has become corrupted. Rebuild the library.Linker Tools Error LNK1200error reading program database "filename"The given program database (PDB) could not be read, probably because it is corrupted. If filename is the PDB for an object file, recompile the object file; usethe /debug:full and /pdbfile options. If filename is the PDB for the main output file and this error occurred during an incremental link, delete the PDB and relink.Linker Tools Error LNK1201error writing to program database "filename"; check for insufficient disk space LINK could not write to the program database (PDB) for the output file. One of the following may be a cause:l The file is corrupted. Delete filename and relink.l There was not enough disk space to write to the file.l The drive being written to was not available, possibly due to a network problem.Linker Tools Error LNK1202Linker Tools Messages Page 13 of 37"filename" missing debugging information for referencing moduleThe given program database (PDB) for an object file was invalid. Recompile the object file; use CL's /Zi option.Linker Tools Error LNK1203"filename" missing current debugging information for referencing moduleThe given program database (PDB) for an object file was invalid. Recompile the object file; use CL's /Zi option.Linker Tools Error LNK1204"filename" compiled /Yc /Yu /Z7; cannot create PDB; recompile with /Zi Multilayered program databases (PDBs) are not supported in combination withold-style debugging information. Recompile using CL's /Zi option.Linker Tools Error LNK1206cannot overwrite Visual C++ 1.0 PDB "filename"; delete and rebuildThis version of LINK cannot write to an existing program database (PDB)created using older versions of the visual development environment. Delete filename and rebuild.Linker Tools Error LNK1207incompatible PDB format in "filename"; delete and rebuildThis version of LINK cannot write to the existing program database (PDB).Delete filename and rebuild.program database "filename" differs from previous link; relink or rebuildThe given program database (PDB) is invalid and possibly corrupt. Relink. If filename is also the PDB for an object file, recompile to recreate the PDB. Linker Tools Error LNK1210insufficient memory for incremental link; relink with /INCREMENTAL:NOThere was not enough virtual memory available for LINK to create the incremental status (.ILK) file.Linker Tools Error LNK1211precompiled type information not found; "filename" not linked or overwritten The given object file, compiled with /Yc, either was not specified in the LINK command or was overwritten.Linker Tools Error LNK1212error opening program database; file is in useThe PDB is already in use by another application.Linker Tools Error LNK1213unexpected import object encounteredThe import library has become corrupted. Rebuild the library.Linker Tools Messages Page 14 of 37Linker Tools Error LNK1221a subsystem can't be inferred and must be definedThe linker does not have enough information to infer which subsystem you will target your application. To fix this error, use the /SUBSYSTEM option.Linker Tools Error LNK1561entry point must be definedThe symbol specified by the /ENTRY option is not defined.Linker Tools Error LNK1581corrupted object or old compiler (bad Pcode entry point)Your object file contained a bad entry point. The object file is probably corrupt.(注:可编辑下载,若有不当之处,请指正,谢谢!)。

fortran 排除错误

fortran 排除错误

安装好VISUAL FORTRAN后1、运行Developer studio即可开始编译FORTRAN程序2、选择File菜单中的New选项3、在弹出的对话框选择projects标签,其他标签不用管,projects格式选用Fortran console application;在project name里命名(最好英文名),点击“ok ”4、接下来画面中,选择“an empty project”,点击“finish”5、接下来画面点击“ok”6、再选择一次File菜单中的new7、对话框选用files标签,选择Fortran free format source file ,并在file里命名8、点击“ok”Source Files 放源文件(.c、.cpp)程序的实现代码全放在这里Header Files 放头文件(.h)声明放在这里Resource Files 资源文件(.rc)放图标、图片、菜单、文字之类的,主要用来做界面的东东一般都放这里External Dependencies 除上三种以外的,程序编译时用到的文件全放这里fortran内部函数出错信息解释内部函数出错信息解释[sourcefile(line)]run-time error M62××MATH错误号函数级数学错误信息M6201 functionnames:DOMAIN error函数的自变量超出了约定的取值域,例如sqrt(-1)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 errorfortran debug模式设置和技巧CVF中有两种编译(连接、执行)模式:release模式和debug模式。

fortran常见错误

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常见错误及其原因

常见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) address3 "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 。

fluent问题解决方法

fluent问题解决方法
问:一对相互平行的斜面,几何结构和尺寸完全相同,用相同的参数控制网格,结果却不 相同,相互之间相差将近 10 个网格。这样的话,要实现 cooper 的拓扑功能,只能由一个 面映射到对面,同时也会导致体网格严重畸变。所以想先划分两个平行面的面网格,然后 利用 cooper 实现体网格的生成。可是两个面的网格结构即使存在细微的差别,也会导致 体网格生成失败,不知道大家有没有遇到这种情况 答:你说的情形应该是不可能出现的,如果使用了虚体,你仔细检查一下你对应的线是不 是正确,我曾经碰到过这种情形,如果两边都是实体,应该是完全一样的 -------------------------------------------------------------------------------问:我用的就是实体,一个四分之一圆柱,用一组相互平行的斜面进行 Split 操作,得到几 个相互连接的体,而在所得到的这些切割面上生成面网格,死活都不能一致 答:你只要严格控制对应边的节点个数,对应面网格自然会相同,也就可以 Fluent 后处理的匹处理! 如果有很多个只有边界条件不同的 cas/dat 文件要进行处理,可以这样做: file----write----start journal---(命名一个记录文件); 然后 fluent 把你下面的每一步操作记录下来, 在你想记录结束的时候,file----write-----stop journal 对于下一个文件,file----read----journal-----(那个记录文件),你原来的操作在新的 cas、dat 文件上从来一遍。 计算中的疑问 turbulent viscosity limited to viscosity ratio of 1.000000e+5 in cell **,是说明 什么?计算有问题了吗? 谢谢 是指在计算过程中 turbulent viscosity 超过了设定的阈值.如果实际中的确是超过的话,可以在 solve->controls->limits 中调整.更详细的说明请看帮助! 什么是旋流数?

Fortran FAQ

Fortran FAQ

1.1 FAQ之常见错误本文从编译错误,链接错误,运行时错误,计算结果错误等四个方面介绍了常见的错误及解决思路。

适合初学者阅读。

首先应该明确:错误有哪几种?我们当前遇到的是何种错误?阐述这些问题前,我们先讨论一下常规的应用程序开发的过程:1>>编写代码,使用一个或多个源代码文件。

2>>对第一步的每一个源代码文件执行编译操作。

得到一个或若干个目标代码。

3>>将目标代码,运行时库(Run-time Library)和其他使用到的函数库链接起来。

得到一个可执行文件(EXE 或其他)4>>编写程序的说明书,必要的(输入)数据文件5>>将上述得到的结果发布给用户。

(发布的方式可以是刻录成光盘,销售,放在网站上供别人下载,或者其他)6>>用户得到程序后,运行,输入数据,得到计算结果。

对于很多Fortran 程序员来说,可能用户就是自己,也可能仅仅是自己教研室的同事同学。

所以第4,5,6步骤很多时候不明显。

而如果使用集成开发环境(IDE)进行开发,第1,2,3步骤又可以一键完成。

因此,很多初学者就认为,写程序就是:输入代码,运行,得到结果。

这样的理解太狭义。

不管我们面对什么使用者来写代码,程序开发应该是上述的过程。

我们的编译器,编译环境,也是为这个过程而设计的。

于是,我们将错误分为四种:一. 编译错误(发生在第2步)编译错误,一般是源代码书写格式不正确,不符合语法要求。

二. 链接错误(发生在第3步)链接错误,一般是源代码结构不完整,运行时库或函数库使用不合理。

三. 运行时错误(发生在第6步)运行时错误,一般是执行代码时,遇到了事先未料及的错误。

比如内存不足了,磁盘空间不够了,输入文件格式不对了,输出文件写入失败了等等。

四. 计算结果不符合预期(程序代码不规范,或不符合你的设想)计算结果不符合预期,可能性就很多了。

语法与你的想法不一致,超出函数库的适用范围,执行流程控制不当等等。

fortran90常见错误

fortran90常见错误

1、运行fortran时出现forrt1:severe<59>:list-directed I/O syntax error,unit 1,file G:\1\1\meat.dat怎么办这是通道1 ,链接到文件meat.dat 的读写出错了。

这问题你得认真检查类似read( 1 , * ) 或write( 1 , * ) 这样的语句,错误原因挺多的。

比如二进制文件用了文本方式读取,比如变量列表与文件不匹配。

问:另外forrt1:severe<161>:program exception -array bounds exceeded是怎么回事?回答:数组越界,也是很常见的错误。

比如real a(100)如果你使用了a(101) 就会越界,因为a 数组只有100 个元素。

2、fortran运行提示error M6201:math-**,现将代码贴出,求高手帮忙看看,急求解答!我不能确定你的错误是怎么引起的。

可能咱们的编译器不同。

你的代码在我这里的问题是:虚参和实参精度不同。

在程序中,你定义了部分real*8,但是对应的虚参和返回值却定义为real。

比如主程序里的z1(双精度),传入函数g里面的x却定义为单精度。

主程序Do 死循环了。

z2_jiashe 和 z2_suan 每一次循环都没有发生改变,于是永远跳不出循环。

我给你的建议是:同一个程序,统一使用real*8 或real*4,尽量不要混用,除非你很自信能理清他们的关系。

检查Do 循环,尤其是z2_jiashe 和z2_suan,是否应该每次循环不同?fortran_排除错误(2012-04-20 23:22:44)安装好VISUAL FORTRAN后1、运行Developer studio即可开始编译FORTRAN程序2、选择File菜单中的New选项3、在弹出的对话框选择projects标签,其他标签不用管,projects格式选用Fortran console application;在project name里命名(最好英文名),点击“ok ”4、接下来画面中,选择“an empty project”,点击“finish”5、接下来画面点击“ok”6、再选择一次File菜单中的new7、对话框选用files标签,选择Fortran free format source file ,并在file里命名8、点击“ok”数Source Files 放源文件(.c、.cpp)程序的实现代码全放在这里Header Files 放头文件(.h)声明放在这里Resource Files 资源文件(.rc)放图标、图片、菜单、文字之类的,主要用来做界面的东东一般都放这里External Dependencies 除上三种以外的,程序编译时用到的文件全放这里fortran内部函数出错信息解释内部函数出错信息解释[sourcefile(line)]run-time error M62××MATH错误号函数级数学错误信息M6201 functionnames:DOMAIN error函数的自变量超出了约定的取值域,例如sqrt(-1)M6202 functionname:SING error无意义的变量。

fortran常见错误及其原因

fortran常见错误及其原因

常见fortran错误1.Incrementally linked image--PC correlation disabled.!编译终止2. forrtl:severe(157):Program Exception - access violationbounds and /warn:argument_checking options set, to see if theproblem is an out-of-bounds memory reference or a argument mismatch that causes data to be treated as anaddress.Other causes of this error include: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未定义。

fortran常见错误

fortran常见错误

附录:常见错误提示及原因安装1.关于Fortran编译器的安装和配置?在安装FEPG之前一般要先安装好Powerstation Fortran 4.0编译器,并设置好Fortran编译器的path、lib和include路径。

如果你的Powerstation Fortran 4.0编译器安装在目录C:\MSDEV下,设置如下:·在WIN 2000/XP下的设置:a.鼠标移到我的电脑图标,单击右键,然后点击属性;b.点击高级属性;c.点击环境变量,进行系统变量设置;系统变量如下图:d. 如果图上的include、lib、path几个变量没有,请点击新建;如有,点击编辑;按下面变量值进行修改:变量:path值:c:\MSDEV\bin; %path%变量:lib 值:c:\MSDEV\lib;%lib%变量:include值:c:\MSDEV\include;%include%注意:如果path、lib和include变量中有相应新增加的内容,可不增加。

如果编译器装在其它目录,则把C:\MSDEV换为该目录名。

实际上,在安装Powerstation Fortran 4.0时,会出现一个对话框,询问是否增加环境变量,如果选是,这些变量就已经配置好了。

安装fepg,需要用户有管理员权限。

2.运行FEPG命令生成Fortran源程序时,出现fl32不是内部命令也不是外部命令的错误(或fl32 is not internal command)?没配置好Fortran编译器的path路径。

按照上面第1个问题中的解答配置好path路径。

3. 运行FEPG命令生成Fortran源程序时,有些fortran源程序没连接成可执行程序,出现不能发现fepg.lib库文件的错误?安装FEPG之前,没安装和配置好Fortran编译器所致。

在安装FEPG之后出现此情况,可先按照上面第1个问题中的解答配置好Fortran编译器,然后在dos窗口下,运行FEPG所在目录下nfe.r8目录下的gfepglib.bat程序,即可生成fepg.lib库文件。

Fortran运行中给出的系统错误及解决方法

Fortran运行中给出的系统错误及解决方法

. Fortran 运行中给出的系统错误及解决方法以下均为linker tools errors and warningsLinker Tools Error LNK1000unknown error; consult documentation for technical support options Note the circumstances of the error, try to isolate the problem and create a reproducible test case, then contact technical support.Linker Tools Error LNK1101incorrect MSPDBxx.DLL version; recheck installation of this product The version of MSPDBxx.DLL available on your system does not match the version required by this tool.Linker Tools Error LNK1102out of memoryThere was not enough memory for the tool to run. Probably the paging file exceeded available disk space. If a shortage of disk space is not the cause, note the circumstances of the error, try to isolate the problem and create a reproducible test case, then request technical support.Linker Tools Error LNK1103debugging information corrupt; recompile moduleProbably the compilation was terminated before a valid object file was created.Recompile the given object file. If recompiling does not correct the problem,note the circumstances of the error, try to isolate the problem and create a reproducible test case, then consult technical support.Linker Tools Error LNK1104cannot open file "filename"The tool could not open the given file. One of the following may be a cause:l There was not enough disk space.l The file does not exist.l The filename or its path was incorrectly specified.l The specified drive is invalid.l The file does not have the appropriate permissions.l The path for filename expands to more than 260 characters.l If the given file is named LNKn, which is a filename generated by the linker for a temporary file, then the directory specified in the TMP environment variable may not exist, or more than one directory is specified for the TMP environment variable. (Only one directory path should be specified for the TMP environment variable.)l If the error occurs on the executable filename, an earlier version of the executable may still be running. You will need to terminate the executable before linking it. In Windows NT (including Windows 2000) or Windows 95,you can use the utility PVIEW to look for and kill instances of the application.l If the error message occurs for a library name, and you recently ported the .MAK file from a previous Microsoft Visual C++ developmentLinker Tools Messages Page 3 of 37environment, the library may no longer be valid. Ensure that the library still exists in this circumstance.l If the error message occurs for a library name such as CONSOLE.LIB, and you included object modules from an older Fortran developmentenvironment such as Microsoft Fortran PowerStation, recompile all source files with Visual Fortran to create new object files and libraries.Linker Tools Error LNK1105cannot close file "filename"The tool could not close the given file. Possibly there was insufficient disk space available.Linker Tools Error LNK1106invalid file or disk full: cannot seek to locationThe tool could not read or write to location in a memory-mapped file:l Your disk may be too full to complete the link. Free up some space and try the link again.l The error may be a result of trying to link over a network. Some networks do not fully support the memory-mapped files used by the linker. Try linking on your local disk to see if that fixes the problem.l There may be a bad block on your disk. Although the operating system and disk hardware should have detected such an error, you may want to run a disk checking program.Linker Tools Error LNK1107invalid or corrupt file: cannot read at locationThe tool could not read the file. Recreate the file.Linker Tools Error LNK1108cannot write file at locationThe tool could not write to the file. One of the following may be a cause:l There was not enough disk space to create the file.l The drive being written to was not available, possibly due to a network problem.Linker Tools Error LNK1109cannot remove file "filename"LIB could not delete the given file. Before LIB writes the new version of a library, it removes the existing library file. One of the following may be a cause:l The given file does not have the appropriate permissions.l The drive containing the file was not available, possibly due to a network problem.Linker Tools Error LNK1110Linker Tools Messages Page 4 of 37cannot rename file "filename"LIB could not rename the given file. When LIB builds a new version of a library, it creates atemporary file, then renames the file. One of the following may be a cause:l The given file does not have the appropriate permissions.l The drive containing the file was not available, possibly due to a network problem.Linker Tools Error LNK1111invalid /BASE argument "argument"The /BASE option was incorrectly specified. Either no argument was specified or argument is not a number.Linker Tools Error LNK1112module machine type "type1" conflicts with target machine type "type2"The object files specified as input were compiled for different machine types.Linker Tools Error LNK1113invalid machine typeThe machine type specified in the object header is not valid. Probably the file is corrupt. Rebuild the object. See Corrupt Object File for more information.Linker Tools Error LNK1115/MACHINE option requiredLINK or LIB cannot determine the machine type for objects that are provided entirely from libraries. Either specify the /MACHINE option with the appropriate machine type or specify at least one object file in the input.Linker Tools Error LNK1117syntax error in option "option"The given option was not correctly specified.Linker Tools Error LNK1118syntax error in keyword statementThe given module-definition statement was not correctly specified.Linker Tools Error LNK1119invalid ordinal number "argument"The argument following the at sign (@) in an ordinal specification was not avalid number. An ordinal number is an optional argument in either an /EXPORToption in a LINK or LIB command or an EXPORTS statement in a moduledefinitionfile. It is an index into the exports table. The number must be aninteger in the range 1-65535.Linker Tools Error LNK1120number unresolved externalsLinker Tools Messages Page 5 of 37Error LNK1120 gives you a count (number) of unresolved externals for this link.The conditions that cause unresolved externals are described with errorLNK2001 (see Linker Errors LNK2001 to LNK2014), which precedes this error message (once for each unresolved external).Linker Tools Error LNK1121duplicate ordinal number "number"The given ordinal number was specified more than once in either an /EXPORT option in a LINK or LIB command or an EXPORTS statement in a moduledefinition file. Ordinal numbers must be unique integers in the range 1-65535.Linker Tools Error LNK1123failure during conversion to COFF: file invalid or corruptThe object or resource could not be converted to COFF. This tool requires the format of all input files to be COFF. If an input file is not COFF, the tool runs a conversion tool, either CVTOMF (to convert 32-bit OMF objects) or CVTRES (to convert resource files). This error is preceded by errors or warnings from the conversion tool. One of the following may be a cause:l The file is corrupt.l The file is not a valid file type. An example of an invalid type is a 16-bit OMF object.Linker Tools Error LNK1127library is corruptThe library file is corrupt. Rebuild the library.Linker Tools Error LNK1129cannot find resolution for weak extern symbolThe given weak external symbol does not have a default resolution. Probablythe symbol table is corrupt. Rebuild the object file. See Corrupt Object File for more information.Linker Tools Error LNK1130Linker miscalc (base relocations off by number)There was not enough space in the image to write base relocations.Linker Tools Error LNK1131no library file specifiedThe LIB /EXTRACT command required a library as input, but a library filenamewas not specified.Linker Tools Error LNK1132invalid format for MS-DOS stub file "filename"The filename specified with the /STUB option was not a valid real-mode MS-DOS executable (.EXE) file.Linker Tools Messages Page 6 of 37Linker Tools Error LNK1136invalid or corrupt fileThe input file either has a corrupt header or is zero size or abnormally small.See Corrupt Object File for more information.Linker Tools Error LNK1137invalid argument specified with /SECTIONEither the name or the attributes argument to the /SECTION option is specified incorrectly.Linker Tools Error LNK1140too many modules for program database; relink with /PDB:NONEThe project contains more than 4096 modules. One of the following is asolution:l Relink using /PDB:NONE.l Compile some modules without debugging information.l Reduce the number of modules.Linker Tools Error LNK1141failure during build of exports fileLINK could not build the exports (.EXP) file. Causes of this error include system problems such as insufficient memory and syntax errors in options or moduledefinition statements. This error is preceded by another error that givesadditional information.Linker Tools Error LNK1143invalid or corrupt file: no symbol for COMDAT section numberThe object file is corrupt. Rebuild the file. See Corrupt Object File for more information.Linker Tools Error LNK1144error with LINK_REPRO var; cannot open "filename"The linker could not create filename. One of the following may be a cause:l Check that you've set your LINK_REPRO environment variable to anexisting directory and not the current directory.l Make sure there are no read-only files in the directory.l Make sure none of the files in the LINK_REPRO directory are open byanother process, because the linker needs to write to them.Linker Tools Error LNK1145/MERGE created circular link for section "section"You attempted to merge a section into itself. Check the /MERGE options.Linker Tools Error LNK1146Linker Tools Messages Page 7 of 37no argument specified with option "option"The given option requires an argument.Linker Tools Error LNK1147invalid number specified with option "option"The argument to the given option was specified incorrectly.Linker Tools Error LNK1148failure during conversion to COFF: cannot copy temp file filenameEDITBIN could not convert the input file to COFF. When EDITBIN converts a file,it creates a temporary file, then copies the file. One of the following may be a cause: l The given file does not have the appropriate permissions.l There was not enough disk space to create the file.l The drive being written to was not available, possibly due to a network problem.Linker Tools Error LNK1149output filename matches input filename "filename"The output filename specified with the /OUT or /IMPLIB option was the same asan input file.Return to Main Linker Error PageLinker Errors LNK1152 to LNK1189Linker Tools Error LNK1152cannot resolve one or more undecorated symbolsThis error is preceded by one warning LNK4022 for each undecorated symbolthat could not be resolved and by at least two warnings LNK4006 for theduplicate symbols found for the undecorated symbol.Linker Tools Error LNK1153/VXD command-line option requiredYou attempted to build a virtual device driver without the /VXD option. Relinkwith the /VXD option.Linker Tools Error LNK1154specified import library filename matches exports file "filename"The filename specified with LINK /IMPORT or with LIB /DEF /OUT conflicted with the filename given by LINK or LIB to the exports file, which is formed from thebase name of the main output file and the extension .EXP.Linker Tools Error LNK1155special symbol "symbol" already definedLinker Tools Messages Page 8 of 37The given symbol is reserved for use by LINK.Linker Tools Error LNK1156.sbss section not supportedAn object file contained an .sbss section.Linker Tools Error LNK1157fixup overflow; offset of target symbol "symbol" greater than +-8MBThe VXD is too large, or the sections are not arranged properly.Linker Tools Error LNK1158cannot run "filename"The given executable file called by LINK is not in the directory that contains LINK and is not in a directory specified in the PATH environment variable. Linker Tools Error LNK1159no output file specifiedNo name was specified for the main output file (executable file or DLL). LINK derives the default name of the output file from the base name of the first object file. If no object files are specified, and if the /OUT option is not used, this error occurs.Linker Tools Error LNK1160library with zero objects not allowedAn attempt was made to remove an object from a library that contained only that object. The object was not removed.Linker Tools Error LNK1161invalid export specificationEither the /EXPORT option or the EXPORTS module-definition statement incorrectly specified an export. A possible cause is a typing error.Linker Tools Error LNK1162expected aux symbol for comdat section numberThe linker expected to find an auxiliary symbol table for the indicated COMDAT but could not. The object file is probably corrupt. See Corrupt Object File for more information.Linker Tools Error LNK1163invalid selection for comdat section numberThe byte in the object file indicating the type of COMDAT section is invalid. The object file is probably corrupt. See Corrupt Object File for more information. Linker Tools Error LNK1164section section alignment (number) greater than /ALIGN valueThe alignment size for the given section in the object file exceeds the value specified with the /ALIGN option. The /ALIGN value must be a power of 2 and Linker Tools Messages Page 9 of 37must equal or exceed the section alignment given in the object file. Either recompile with a smaller section alignment or increase the /ALIGN value. Linker Tools Error LNK1165link failed because of fixup errorsThe build failed due to fixup errors. The /FORCE or /FORCE:UNRESOLVED option overrides this error.Linker Tools Error LNK1166cannot adjust code at offset=offset, va=valueLINK was unable to pad the code as required. Certain instructions are not allowed to cross page boundaries on some processors. LINK attempts to add pads to correct this situation. In this case, LINK could not work around the problem.Linker Tools Error LNK1167file contains relocs but header has no machine typeA converted COFF object did not have a machine type specified in its header. One cause of this error is omitting a machine type when converting a .RES file in a separate step before linking.Linker Tools Error LNK1168cannot open filename for writingThe given file does not have write permission.Linker Tools Error LNK1169one or more multiply defined symbols foundThe build failed due to multiple definitions of one or more symbols. This error is preceded by error LNK2005. The /FORCE or /FORCE:MULTIPLE option overrides this error.Linker Tools Error LNK1170line in command file contains limit or more charactersThe length of a line in a command file must be less than the given limit.Linker Tools Error LNK1171unable to load filenameThe given DLL was unavailable. The possible locations for the DLL are the current directory, the system directory, the Windows directory, and the directories specified in the PATH environment variable.Linker Tools Error LNK1172more than one object with the name "object" found; rename object(s) orrelink /PDB:NONEA library contained two or more objects with the same name. Do one of the following:Linker Tools Messages Page 10 of 37l Rename the objects using unique names and rebuild the library.l Link using the /PDB:NONE option.Linker Tools Error LNK1173unable to find entrypoint function in filenameThe given function does not exist in the given DLL.Linker Tools Error LNK1174unable to /REBASE filename; not a valid Win32 imageThe format of the given file was invalid.Linker Tools Error LNK1175failed to /REBASE filenameThe rebase operation failed on the given file.Linker Tools Error LNK1177TOC size limit exceededThe linker was unable to create a TOC (Table of Contents) in your image file. The limit is 2048 entries in the TOC.Linker Tools Error LNK1178missing MODEND record; file is invalid or corruptThe linker tool tried to convert an OMF object module to COFF format but could not find an expected MODEND (module end) record in the OMF object. The OMF object module is corrupt and needs to be recreated or recopied. See Corrupt Object File for more information.Linker Tools Error LNK1179invalid or corrupt file: duplicate comdat comdatAn object module contained two or more COMDATs with the same name. One possible cause is if you use the Visual C++ /H option with the Visual C++ /Gy option. The /H option limits the length of external names, and the /Gy option packages functions in COMDATs.Linker Tools Error LNK1180insufficient disk space to complete linkThe linker tool was unable to complete a file operation since the operating system reported that the disk is full. Free up space on your local and network drives (if you are writing files there).Linker Tools Error LNK1181cannot open input file "filename"The linker tool could not find "filename" because it does not exist or the path was not found.Linker Tools Error LNK1182Linker Tools Messages Page 11 of 37cannot have more than 64K exportsYou have reached the linker's limit of 65,536 exports.Linker Tools Error LNK1183invalid or corrupt file: extended relocation count number less than 65535The COFF object file is corrupt since it contains an extended relocation count that is less than 0xFFFF. See Corrupt Object File for more information.Linker Tools Error LNK1184invalid section name "section" specified in option or directive "option"You gave the linker an invalid section name in option. Invalid section names contain "$" or blanks.Linker Tools Error LNK1185invalid section name "section" specifiedYou gave the linker an invalid section name in a .DEF file. Invalid section names contain "$" or blanks.Linker Tools Error LNK1186invalid or corrupt COFF object; reloc to undefined static symbol "symbol"Your COFF object module is corrupt since it contains a relocation entry for an undefined static symbol. See Corrupt Object File for more information.Linker Tools Error LNK1187Corrupt object - unmatched name relocation; ignoredYour object file contains bad relocation information. Recopy or recreate the object file. See Corrupt Object File for more information.Linker Tools Error LNK1188BADFIXUPSECTION:: invalid fixup target "symbol"; possible zero length section This message is issued only for VxD links when the target of a relocation does not have a section. With LINK386 (an older version), an OMF GROUP record (generated by a MASM GROUP directive) may have been used to combine the zero length section with another non-zero length section. COFF format does not support the GROUP directive and zero-length sections. When LINK automatically converts this type of OMF objects to COFF, this error may occur.Linker Tools Error LNK1189LIBTOOMANYMEMBERS:: library limit of number objects exceededThe limit of 65535 objects or members in a library has been exceeded.Return to Main Linker Error PageLinker Errors LNK1190 to LNK1581Linker Tools Error LNK1190Linker Tools Messages Page 12 of 37invalid fixup found, type typeThe object file has become corrupted. Recompile.Linker Tools Error LNK1194cannot delay-load dll name due to import of data symbol symbol name; relink without /DELAYLOAD:dll nameYou cannot delay load a DLL if data is imported from it.Linker Tools Error LNK1195target machine "machine" requires "option"Add the required option.Linker Tools Error LNK1196invalid or corrupt import object: unknown versionThe import library has become corrupted. Rebuild the library.Linker Tools Error LNK1197invalid or corrupt import object: unknown typeThe import library has become corrupted. Rebuild the library.Linker Tools Error LNK1198invalid or corrupt import object: unknown name typeThe import library has become corrupted. Rebuild the library.Linker Tools Error LNK1199invalid or corrupt import object: non-zero reserved fieldsThe import library has become corrupted. Rebuild the library.Linker Tools Error LNK1200error reading program database "filename"The given program database (PDB) could not be read, probably because it is corrupted. If filename is the PDB for an object file, recompile the object file; use the /debug:full and /pdbfile options. If filename is the PDB for the main outputfile and this error occurred during an incremental link, delete the PDB and relink.Linker Tools Error LNK1201error writing to program database "filename"; check for insufficient disk space LINK could not write to the program database (PDB) for the output file. One of the following may be a cause:l The file is corrupted. Delete filename and relink.l There was not enough disk space to write to the file.l The drive being written to was not available, possibly due to a network problem.Linker Tools Error LNK1202Linker Tools Messages Page 13 of 37"filename" missing debugging information for referencing moduleThe given program database (PDB) for an object file was invalid. Recompile the object file; use CL's /Zi option.Linker Tools Error LNK1203"filename" missing current debugging information for referencing moduleThe given program database (PDB) for an object file was invalid. Recompile the object file; use CL's /Zi option.Linker Tools Error LNK1204"filename" compiled /Yc /Yu /Z7; cannot create PDB; recompile with /Zi Multilayered program databases (PDBs) are not supported in combination with old-style debugging information. Recompile using CL's /Zi option.Linker Tools Error LNK1206cannot overwrite Visual C++ 1.0 PDB "filename"; delete and rebuildThis version of LINK cannot write to an existing program database (PDB) created using older versions of the visual development environment. Delete filename and rebuild.Linker Tools Error LNK1207incompatible PDB format in "filename"; delete and rebuildThis version of LINK cannot write to the existing program database (PDB). Delete filename and rebuild.Linker Tools Error LNK1209program database "filename" differs from previous link; relink or rebuildThe given program database (PDB) is invalid and possibly corrupt. Relink. If filename is also the PDB for an object file, recompile to recreate the PDB. Linker Tools Error LNK1210insufficient memory for incremental link; relink with /INCREMENTAL:NO There was not enough virtual memory available for LINK to create the incremental status (.ILK) file.Linker Tools Error LNK1211precompiled type information not found; "filename" not linked or overwritten The given object file, compiled with /Yc, either was not specified in the LINK command or was overwritten.Linker Tools Error LNK1212error opening program database; file is in useThe PDB is already in use by another application.Linker Tools Error LNK1213unexpected import object encounteredThe import library has become corrupted. Rebuild the library.Linker Tools Messages Page 14 of 37Linker Tools Error LNK1221a subsystem can't be inferred and must be definedThe linker does not have enough information to infer which subsystem you will target your application. To fix this error, use the /SUBSYSTEM option.Linker Tools Error LNK1561entry point must be definedThe symbol specified by the /ENTRY option is not defined.Linker Tools Error LNK1581corrupted object or old compiler (bad Pcode entry point)Your object file contained a bad entry point. The object file is probably corrupt.。

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) address3 "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 。

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) address3 "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 。

Fortran运行中给出的系统错误及解决方法

Fortran运行中给出的系统错误及解决方法

⎰-102e xdxSevere_MessagesMust be corrected. The program's execution is terminated when the error is encountered, unless for I/O statements the program uses the END or ERR I/O statement specifiers to transfer control,perhaps to a routine that uses the IOSTAT specifier (see your DEC Fortran user manual).The severe messages follow (in alphabetical order):o MESSAGE: Adjustable array dimension errorNUMBER: 93EXPLANATION: Upon entry to a subprogram, one of the followingerrors was detected during the evaluation of dimensioninginformation:- An upper-dimension bound was less than alower-dimension bound.- The dimensions implied an array that was largerthan addressable memory.o MESSAGE: Attempt to access non-existent recordNUMBER: 36EXPLANATION: A direct-access READ or FIND statement attemptedto access beyond the end of a relative file (or a sequentialfile on disk with fixed-length records) or access a record that was previously deleted in a relative file.o Array index out of bounds (SIGTRAP)NUMBER: 138EXPLANATION: Break exception generated a SIGTRAP signal(described in signal(3)). Core dump file created.The cause is an array subscript that is outside the dimensionedboundaries of that array. Try recompiling using the -checkbounds option (perhaps with the f77_dump_flag environmentvariable set) or examine the core dump file to determine thesource code in error.o MESSAGE: Array index out of bounds for index n (SIGTRAP) NUMBER: 139EXPLANATION: Break exception generated a SIGTRAP signal(described in signal(3)). Core dump file created.The cause is an array subscript that is outside the dimensionedboundaries of the array index n. Try recompiling using the-check bounds option (perhaps with the f77_dump_flagenvironment variable set) or examine the core dump file todetermine the source code in error.o MESSAGE: BACKSPACE errorNUMBER: 23EXPLANATION: An error condition was detected during executionof a BACKSPACE statement.o MESSAGE: Cannot overwrite existing fileNUMBER: 10EXPLANATION: Specified file xxx already exists when OPENstatement specified STATUS='NEW' (create new file) using I/Ounit x. Make sure correct file name, directory path, unit, and so forth were specified in the source program. Decide whether to:- Rename or remove the existing file before rerunningthe program.- Modify the source file to specify different filespecification, I/O unit, or OPEN statement STATUS='UNKNOWN'. o MESSAGE: Cannot stat fileNUMBER: 108EXPLANATION: Attempted stat operation on the indicated filefailed. Make sure correct file and unit were specified.o MESSAGE: CLOSE errorNUMBER: 28EXPLANATION: An error condition was detected by the DECFortran RTL I/O system during execution of a CLOSE statement. o MESSAGE: DELETE errorNUMBER: 55EXPLANATION: An error condition was detected by the DECFortran RTL I/O system during execution of a DELETE statement. o MESSAGE: Divide by zero check (SIGTRAP)NUMBER: 137EXPLANATION: Break exception generated a SIGTRAP signal(described in signal(3)). Core dump file created.Examine core dump file for possible cause.o MESSAGE: Duplicate file specificationsNUMBER: 21EXPLANATION: Multiple attempts were made to specify fileattributes without an intervening close operation. A DEFINEFILE statement was followed by another DEFINE FILE statement or an OPEN statement.o MESSAGE: ENDFILE errorNUMBER: 33EXPLANATION: One of the following conditions occurred:- The file was not a sequential organization file withvariable-length records.- The file was not opened for sequential or append access.- An unformatted file did not contain segmented records.- The DEC Fortran RTL I/O system detected an error duringexecution of an ENDFILE statement.o MESSAGE: End-of-file during readNUMBER: 24EXPLANATION: One of the following conditions occurred:- A DEC Fortran RTL I/O system end-of-file conditionwas encountered during execution of a READ statementthat did not contain an END, ERR, or IOSTAT specification. - An end-of-file record written by the ENDFILE statementwas encountered during execution of a READ statementthat did not contain an END, ERR, or IOSTAT specification. - An attempt was made to read past the end of an internalfile character string or array during execution of a READ statement that did not contain an END, ERR, or IOSTATspecification.o MESSAGE: Error during readNUMBER: 39EXPLANATION: The DEC Fortran RTL I/O system detected an errorcondition during execution of a READ statement.o MESSAGE: Error during writeNUMBER: 38EXPLANATION: The DEC Fortran RTL I/O system detected an error condition during execution of a WRITE statement.o MESSAGE: File name specification errorNUMBER: 43EXPLANATION: The file name was specified erroneously.o MESSAGE: File not foundNUMBER: 29EXPLANATION: A file with the specified name could not be found during an open operation.o MESSAGE: FIND errorNUMBER: 57EXPLANATION: The DEC Fortran RTL I/O system detected an error condition during execution of a FIND statement.o MESSAGE: Floating overflow in math libraryNUMBER: 88EXPLANATION: A floating-point overflow condition was detected during execution of a math library procedure.o MESSAGE: Floating underflow in math libraryNUMBER: 89EXPLANATION: A floating-point underflow condition was detected during execution of a math library procedure. The resultreturned was zero.o MESSAGE: Format/variable-type mismatchNUMBER: 61EXPLANATION: An attempt was made either to read or write areal variable with an integer field descriptor (I or L), or to read or write an integer or logical variable with a real field descriptor (D, E, F, or G).o MESSAGE: Formatted I/O to unit open for unformatted transfers NUMBER: 257EXPLANATION: Attempted formatted I/O (such as list-directed ornamelist I/O) to a unit where the OPEN statement indicated the file was unformatted (FORM keyword). Check that the correct unit (file) was specified.If the FORM keyword was not specified in the OPEN statement andthe file should contain formatted data, specifyFORM='FORMATTED' in the OPEN statement. Otherwise, ifappropriate, use unformatted I/O.o MESSAGE: Inconsistent file organizationNUMBER: 51EXPLANATION: The file organization specified in an OPENstatement did not match the organization of the existing file. o MESSAGE: Inconsistent OPEN/CLOSE parametersNUMBER: 46EXPLANATION: Specifications in an OPEN or CLOSE statement wereinconsistent. Some invalid combinations follow:- READONLY with STATUS='NEW' or STATUS='SCRATCH'- ACCESS='APPEND' with READONLY, STATUS='NEW' orSTATUS='SCRATCH'- DISPOSE='SAVE', 'PRINT', or 'SUBMIT' withSTATUS='SCRATCH'- DISPOSE='DELETE' with READONLYo MESSAGE: Inconsistent record lengthNUMBER: 37EXPLANATION: An attempt was made to open a direct access filewithout specifying a record length.o MESSAGE: Inconsistent record typeEXPLANATION: The RECORDTYPE value in an OPEN statement did notmatch the record type attribute of the existing file that was opened.o MESSAGE: Infinite format loopNUMBER: 60EXPLANATION: The format associated with an I/O statement thatincluded an I/O list had no field descriptors to use intransferring those values.o MESSAGE: Input conversion errorNUMBER: 64EXPLANATION: During a formatted input operation, an invalidcharacter was detected in an input field, or the input valueoverflowed the range representable in the input variable. The value of the variable was set to zero.o MESSAGE: Input record too longNUMBER: 22EXPLANATION: A record was read that exceeded the explicit ordefault record length specified when the file was opened. To read the file, use an OPEN statement with a RECL= value (record length) of the appropriate size.o MESSAGE: Input statement requires too much dataEXPLANATION: An unformatted READ statement attempted to readmore data than existed in the record being read.o MESSAGE: Insufficient virtual memoryNUMBER: 41EXPLANATION: The DEC Fortran RTL was unable to acquireadditional virtual memory from the operating system. Users of the C and Korn shells may be able to overcome this problem by increasing the per-process data limit using the limit (C shell) or ulimit (Korn shell) commands. For more information, see the csh(1) and ksh(1) reference pages.If the maximum per-process data size is already allocated,increase the value of the maxdsiz parameter in the system'sconfiguration file. Note that edits to the configuration file do not take effect until the operating system kernel has been rebuilt, and the system has been rebooted. For moreinformation, see the doconfig(1) reference page and youroperating system guide to system configuration.o MESSAGE: Integer overflowNUMBER: 70EXPLANATION: During an arithmetic operation, an integer valueexceeded byte, word, or longword range. The result of theoperation was the correct low-order part. See your DEC Fortran user manual for ranges of the various integer data types.o MESSAGE: Integer zero divideNUMBER: 71EXPLANATION: During an integer arithmetic operation, anattempt was made to divide by zero. The result of theoperation was set to the dividend, which is equivalent todivision by 1.o MESSAGE: Internal consistency check failureNUMBER: 8EXPLANATION: Internal severe error. Please check that theprogram is correct. Recompile if an error exists in theprogram.If this error persists, submit an SPR.o MESSAGE: Invalid argument to Fortran Run-Time Library NUMBER: 48EXPLANATION: The compiler passed an invalid or improperlycoded argument to the DEC Fortran RTL. This can occur if the compiler is newer than the RTL in use.o MESSAGE: Invalid argument to math libraryNUMBER: 81EXPLANATION: One of the mathematical procedures detected aninvalid argument value.o MESSAGE: Invalid logical unit numberNUMBER: 32EXPLANATION: A logical unit number greater than or less than zero was used in an I/O statement.o MESSAGE: Invalid reference to variable in NAMELIST input NUMBER: 19EXPLANATION: One of the following conditions occurred:- The variable was not a member of the namelist group.- An attempt was made to subscript the scalar variable.- A subscript of the array variable was out-of-bounds.- An array variable was specified with too many or toofew subscripts for the variable.- An attempt was made to specify a substring of a non-character variable or array name.- A substring specifier of the character variable wasout-of-bounds.- A subscript or substring specifier of the variable wasnot an integer constant.- An attempt was made to specify a substring using anunsubscripted array variable.o MESSAGE: Kernel breakpoint (SIGTRAP)NUMBER: 131EXPLANATION: Break exception generated a SIGTRAP signal(described in signal(3)). Core dump file created.Examine core dump for possible cause.o MESSAGE: Keyword value error in OPEN statementNUMBER: 45EXPLANATION: An improper value was specified for an OPEN orCLOSE statement keyword requiring a value.o MESSAGE: List-directed I/O syntax errorNUMBER: 59EXPLANATION: The data in a list-directed input record had aninvalid format, or the type of the constant was incompatiblewith the corresponding variable. The value of the variable was unchanged.o MESSAGE: Logarithm of zero or negative valueNUMBER: 83EXPLANATION: An attempt was made to take the logarithm of zeroor a negative number. The result returned was the reservedoperand, -0.o MESSAGE: Mixed file access modesNUMBER: 31EXPLANATION: An attempt was made to use any of the followingcombinations:- Formatted and unformatted operations on the same unit.- An invalid combination of access modes on a unit,such as direct and sequential.- A DEC Fortran RTL I/O statement on a logical unit thatwas opened by a program coded in another language. o MESSAGE: No such deviceNUMBER: 42EXPLANATION: A pathname included an invalid or unknown device name when an OPEN operation was attempted.o MESSAGE: Not a Fortran-specific errorNUMBER: 1EXPLANATION: An error occurred in the user program or in the RTL that was not a DEC Fortran-specific error.o MESSAGE: Not taken branch delay emulation (SIGTRAP) NUMBER: 134EXPLANATION: Break exception generated a SIGTRAP signal(described in signal(3)). Core dump file created. Examine core dump for possible cause.o MESSAGE: OPEN or DEFINE FILE requiredNUMBER: 26EXPLANATION: A direct access READ, WRITE, or FIND, statementwas attempted for a file when no DEFINE FILE or OPEN statement with ACCESS='DIRECT' was performed for that file.o MESSAGE: Open failureNUMBER: 30EXPLANATION: An error was detected by the DEC Fortran RTL I/Osystem while attempting to open a file in an OPEN, INQUIRE, or other I/O statement. This message is issued when the errorcondition is not one of the more common conditions for which specific error messages are provided. It can occur if an OPEN operation is attempted for one of the following files:- A segmented file that was not on a disk or a rawmagnetic tape.- A standard I/O file that had been closed.o MESSAGE: Operation requires seek abilityNUMBER: 120EXPLANATION: Attempted an operation on a file that requiresthe ability to perform seeks on that file. Make sure thecorrect unit, directory path, and file were specified.o MESSAGE: Output statement overflows recordNUMBER: 66EXPLANATION: An output statement attempted to transfer moredata than would fit in the maximum record size.o MESSAGE: Overflow check (SIGTRAP)NUMBER: 136EXPLANATION: Break exception generated a SIGTRAP signal(described in signal(3)). Core dump file created.The cause is an integer overflow. Try recompiling using the-check overflow option (perhaps with the f77_dump_flagenvironment variable set) or examine the core dump file todetermine the source code in error.o MESSAGE: Pathname errorNUMBER: 43EXPLANATION: A pathname (or file name) given to an OPEN orINQUIRE statement was not acceptable to the DEC Fortran RTL I/O system.o MESSAGE: Permission to access file denied, unit x, file xxx NUMBER: 9EXPLANATION: Check the mode (protection) of the specifiedfile. Make sure the correct file was being accessed. Change the protection, specified file, or process used beforererunning program.o MESSAGE: Record number outside rangeNUMBER: 25EXPLANATION: A direct access READ, WRITE, or FIND statementspecified a record number outside the range specified when the file was opened.o MESSAGE: Recursive I/O operationNUMBER: 40EXPLANATION: While processing an I/O statement for a logicalunit, another I/O operation on the same logical unit wasattempted, such as a function subprogram that performs I/O to the same logical unit was referenced in an expression in an I/O list or variable format expression.o MESSAGE: REWIND errorNUMBER: 20EXPLANATION: One of the following conditions occurred:- The file was not a sequential file.- The file was not opened for sequential or append access.- The DEC Fortran RTL I/O system detected an error conditionduring execution of a REWIND statement.o MESSAGE: Segmented record format errorNUMBER: 35EXPLANATION: An invalid segmented record control data word wasdetected in an unformatted sequential file. The file wasprobably either created with RECORDTYPE='FIXED' or 'VARIABLE' in effect, or was created by a program written in a languageother than Fortran.o MESSAGE: Significance lost in math libraryNUMBER: 87EXPLANATION: The magnitude of an argument or the magnitude ofthe ratio of the arguments to a math library function was solarge that all significance in the result was lost. The result returned was the reserved operand, -0.o MESSAGE: Square root of negative valueNUMBER: 84EXPLANATION: An argument required the evaluation of the squareroot of a negative value. The result returned was the reserved operand, -0.o MESSAGE: Subscript out of rangeNUMBER: 77EXPLANATION: An array reference was detected outside thedeclared array bounds.o MESSAGE: Syntax error in formatNUMBER: 62EXPLANATION: A syntax error was encountered while the RTL wasprocessing a format stored in an array or character variable. o MESSAGE: Syntax error in NAMELIST inputNUMBER: 17EXPLANATION: The syntax of input to a namelist READ statement was incorrect.o MESSAGE: Taken branch delay emulation (SIGTRAP) NUMBER: 133EXPLANATION: Break exception generated a SIGTRAP signal(described in signal(3)). Core dump file created. Examine core dump for possible cause.o MESSAGE: Too many records in I/O statementNUMBER: 27EXPLANATION: An attempt was made to do one of the following: - Read or write more than one record with an ENCODEor DECODE statement.- Write more records than existed.o MESSAGE: Too many values for NAMELIST variableNUMBER: 18EXPLANATION: An attempt was made to assign too many values to a variable during a namelist READ statement.o MESSAGE: Undefined exponentiationNUMBER: 82EXPLANATION: An exponentiation that is mathematicallyundefined was attempted, for example, 0.**0. The result returned for floating-point operations was the reservedoperand, -0, and for integer operations, zero.o MESSAGE: Unformatted I/O to unit open for formatted transfers NUMBER: 256EXPLANATION: Attempted unformatted I/O to a unit where theOPEN statement indicated the file was formatted (FORM keyword). Check that the correct unit (file) was specified.If the FORM keyword was not specified in the OPEN statement andthe file should contain unformatted data, specifyFORM='UNFORMATTED' in the OPEN statement. Otherwise, ifappropriate, use formatted I/O (such as list-directed ornamelist I/O).o MESSAGE: Unit already openNUMBER: 34EXPLANATION: A DEFINE FILE statement specified a logical unitthat was already opened.o MESSAGE: Unit not connectedNUMBER: 11EXPLANATION: The specified unit was not open at the time ofthe attempted I/O operation. Check if correct unit number was specified. If appropriate, use an OPEN statement to explicitly open the file (associates the file with the unit number).o MESSAGE: User breakpoint (SIGTRAP)EXPLANATION: Break exception generated a SIGTRAP signal(described in signal(3)). Core dump file created.Examine core dump for possible cause.o MESSAGE: User single step (SIGTRAP)NUMBER: 135EXPLANATION: Break exception generated a SIGTRAP signal(described in signal(3)). Core dump file created.Examine core dump for possible cause.o MESSAGE: Variable format expression value errorNUMBER: 68EXPLANATION: The value of a variable format expression was notwithin the range acceptable for its intended use; for example, a field width was less than or equal to zero. A value of 1 was assumed, except for a P edit descriptor, for which a value of zero was assumed.o MESSAGE: Write to READONLY fileNUMBER: 47EXPLANATION: A write operation was attempted to a file thatwas declared READONLY in the OPEN statement that is currently in effect.o MESSAGE: Wrong number of argumentsEXPLANATION: An improper number of arguments was used to calla math library procedure.Error_MessagesShould be corrected. The program may continue execution, but the output from this execution may be incorrect.The error messages follow (in alphabetical order):o MESSAGE: Floating divide by zeroNUMBER: 73EXPLANATION: During a floating-point arithmetic operation, anattempt was made to divide by zero.o MESSAGE: Floating invalidNUMBER: 65EXPLANATION: During an arithmetic operation, thefloating-point value generated resulted in an invalid format (not representable for that data type).o MESSAGE: Floating overflowNUMBER: 72EXPLANATION: During an arithmetic operation, a floating-pointvalue exceeded the largest representable value for that data type. See your DEC Fortran user manual for ranges of thevarious data types.o MESSAGE: Floating point exceptionNUMBER: 75EXPLANATION: A floating-point exception occurred. Core dumpfile created. Possible causes include divide by zero,overflow, or an invalid operation, such as subtraction ofinfinite values, multiplication of zero by infinity (withoutsigns), division of zero by zero or infinity by infinity, and conversion of floating-point to fixed-point format when anoverflow prevents conversion.o MESSAGE: Floating underflowNUMBER: 74EXPLANATION: During an arithmetic operation, a floating-pointvalue became less than the smallest representable value forthat data type. On RISC systems (depending on the values ofthe f77 command -fpe option), the underflowed result was either set to zero or allowed to gradually underflow. On AXP systems, the underflowed result is set to zero. See your DEC Fortranuser manual for ranges of the various data types.o MESSAGE: Fortran abort routine calledNUMBER: 266EXPLANATION: The program called abort to terminate theprogram.o MESSAGE: IOT trap signalNUMBER: 76EXPLANATION: Core dump file created. Examine core dump forpossible cause of this IOT signal.o MESSAGE: Output conversion errorNUMBER: 63EXPLANATION: During a formatted output operation, the value ofa particular number could not be output in the specified field length without loss of significant digits. When this situation is encountered, the field is filled with asterisks.o MESSAGE: Process interrupted (SIGINT)NUMBER: 69EXPLANATION: The process received the signal SIGINT.Determine source of this interrupt signal (described insignal(3)).o MESSAGE: Process killed (SIGTERM)NUMBER: 78EXPLANATION: The process received the signal SIGTERM.Determine source of this software termination signal (described in signal(3)).o MESSAGE: Process quit (SIGQUIT)NUMBER: 79EXPLANATION: The process received the signal SIGQUIT. Coredump file created. Determine source of this quit signal(described in signal(3)).Warning_MessagesShould be investigated. The program continues execution, but the output from this execution may be incorrect.The warning messages follow (in alphabetical order):o MESSAGE: Could not open message catalog: formsg.cat NUMBER: noneEXPLANATION: The DEC Fortran message file was not found onthis system. See your DEC Fortran user manual for moreinformation.Informational_MessagesFor informational purposes only. Unless it accompanies anothermessage, the program continues.The informational messages follow (in alphabetical order):o MESSAGE: Check environment variable NLSPATH and protection of path-name/for_msg.datNUMBER: noneEXPLANATION: The DEC Fortran message file was not found onthis system. For more information, see your DEC Fortran user manual or your DEC Fortran installation guide.o MESSAGE: Check location/protection of NLS and/usr/lib/formsg.datNUMBER: noneEXPLANATION: The DEC Fortran message file was not found onthis system. See your DEC Fortran user manual for moreinformation.o MESSAGE: nn floating divide-by-zero trapsNUMBER: 299EXPLANATION: The total number of floating-point divide-by-zero traps encountered during program execution was nn. This summary message appears at program completion.o MESSAGE: nn floating invalid trapsNUMBER: 297EXPLANATION: The total number of floating-point invalid data traps encountered during program execution was nn. This summary message appears at program completion.o MESSAGE: nn floating overflow trapsNUMBER: 298EXPLANATION: The total number of floating-point overflow traps encountered during program execution was nn. This summary message appears at program completion.o MESSAGE: Floating-point conversion failedNUMBER: 95EXPLANATION: The attempted unformatted read or write ofnon-native floating-point data failed. A non-nativefloating-point value either exceeded the allowable maximumvalue for the equivalent native format and was set equal toinvalid, or the value was infinity (plus or minus), not anumber (NaN), or otherwise invalid and was set to invalid.Very small numbers are set to zero (0). This could be caused by the specified non-native floating-point format not matching the floating-point format found in the specified file.Make sure the correct file was specified. Make sure the recordlayout matches the format DEC Fortran is expecting. Check that the correct non-native floating-point data format wasspecified, as described in your DEC Fortran user manual.o MESSAGE: nn floating underflow trapsNUMBER: 300EXPLANATION: The total number of floating-point underflowtraps encountered during program execution was nn. Thissummary message appears at program completion.o MESSAGE: Format syntax error at or near xxNUMBER: 58EXPLANATION: Check the statement containing xx, a charactersubstring from the format string, for a format syntax error.For information about FORMAT statements, refer to the "DECFortran Language Reference Manual".o MESSAGE: Fortran error message number is nnnNUMBER: noneEXPLANATION: The DEC Fortran message file was not found onthis system. For information about the message file location and the error text that corresponds to the listed error number, nnn, see your DEC Fortran user manual.。

fortran90常见错误

fortran90常见错误

1、运行fortran时出现forrt1:severe<59>:list-directed I/O syntax error,unit 1,file G:\1\1\meat.dat怎么办这是通道1 ,链接到文件meat.dat 的读写出错了。

这问题你得认真检查类似read( 1 , * ) 或write( 1 , * ) 这样的语句,错误原因挺多的。

比如二进制文件用了文本方式读取,比如变量列表与文件不匹配。

问:另外forrt1:severe<161>:program exception -array bounds exceeded是怎么回事?回答:数组越界,也是很常见的错误。

比如real a(100)如果你使用了a(101) 就会越界,因为a 数组只有100 个元素。

2、fortran运行提示error M6201:math-**,现将代码贴出,求高手帮忙看看,急求解答!我不能确定你的错误是怎么引起的。

可能咱们的编译器不同。

你的代码在我这里的问题是:虚参和实参精度不同。

在程序中,你定义了部分real*8,但是对应的虚参和返回值却定义为real。

比如主程序里的z1(双精度),传入函数g里面的x却定义为单精度。

主程序Do 死循环了。

z2_jiashe和z2_suan每一次循环都没有发生改变,于是永远跳不出循环。

我给你的建议是:同一个程序,统一使用real*8 或real*4,尽量不要混用,除非你很自信能理清他们的关系。

检查Do 循环,尤其是z2_jiashe 和z2_suan,是否应该每次循环不同?fortran_排除错误(2012-04-20 23:22:44)安装好VISUAL FORTRAN后1、运行Developer studio即可开始编译FORTRAN程序2、选择File菜单中的New选项3、在弹出的对话框选择projects标签,其他标签不用管,projects格式选用Fortran console application;在project name里命名(最好英文名),点击“ok ”4、接下来画面中,选择“an empty project”,点击“finish”5、接下来画面点击“ok”6、再选择一次File菜单中的new7、对话框选用files标签,选择Fortran free format source file ,并在file里命名8、点击“ok”数Source Files 放源文件(.c、.cpp)程序的实现代码全放在这里Header Files 放头文件(.h)声明放在这里Resource Files 资源文件(.rc)放图标、图片、菜单、文字之类的,主要用来做界面的东东一般都放这里External Dependencies 除上三种以外的,程序编译时用到的文件全放这里fortran内部函数出错信息解释内部函数出错信息解释[sourcefile(line)]run-time error M62××MATH错误号函数级数学错误信息M6201 functionnames:DOMAIN error函数的自变量超出了约定的取值域,例如sqrt(-1)M6202 functionname:SING error无意义的变量。

fortran常见问题解决

fortran常见问题解决

楼主为了减少重复回答问题,特编此帖,并不定期添加和更新内容。

错误难免,欢迎讨论,仅供参考。

很多人问哪里可以找到Fortran编译器,有不少热心学友提供网址,特汇集在这里。

虽然俺检验过这些链接,但是它们不一定总有效。

Fortran编译器下载:CVF?FTN95(License:Freeforpersonaluse)以下操作,如无特别说明,都是以为例。

1.如何加大Stacksize?选Project=>Settings=>Link=>Category:Output=>?StackallocationsReserve:这里填新值(默认为1M,若需要10M,则填)2.如何用Fortran批量生成文件?设要生成4000个文件,文件名为AA1-AA4000,如何写循环生成文件,而不用写4000次write 命令呢?用内部文件:character(len=80)::filename,forminteger::idoi=1,4000selectcase(i)case(1:9)write(form,'(i1)')icase(10:99)write(form,'(i2)')icase(100:999)write(form,'(i3)')icase(1000:9999)write(form,'(i4)')iendselectwrite(filename,*)"AA",trim(form),".TXT"open(10,file=filename)write(10,*)iclose(10)enddo?stopend3.如何用Fortran动态生成输出格式?设有一个数组data(100),输出时,希望每行输出num个数,而num由用户输入,如何实现?用内部文件:character(len=80)::formreal::data(100)integer::i,numdata=(/(i,i=1,100)/)/read(*,*)numwrite(form,*)"(",num,""write(*,form)datastopend4.MS是不是很垃圾?是垃圾,其中Bug太多,多到不可用的地步!在这个主题里,换了CVF后问题就没了的人已有相当的数目。

fortran90常见错误

fortran90常见错误

fortran90常见错误1、运行fortran时出现forrt1:severe<59>:list-directed I/O syntax error,unit 1,file G:\1\1\meat.dat怎么办这是通道1 ,链接到文件meat.dat 的读写出错了。

这问题你得认真检查类似read( 1 , * ) 或write( 1 , * ) 这样的语句,错误原因挺多的。

比如二进制文件用了文本方式读取,比如变量列表与文件不匹配。

问:另外forrt1:severe<161>:program exception -array bounds exceeded是怎么回事?回答:数组越界,也是很常见的错误。

比如real a(100)如果你使用了a(101) 就会越界,因为a 数组只有100 个元素。

2、fortran运行提示error M6201:math-**,现将代码贴出,求高手帮忙看看,急求解答!我不能确定你的错误是怎么引起的。

可能咱们的编译器不同。

你的代码在我这里的问题是:虚参和实参精度不同。

在程序中,你定义了部分real*8,但是对应的虚参和返回值却定义为real。

比如主程序里的z1(双精度),传入函数g里面的x却定义为单精度。

主程序Do 死循环了。

z2_jiashe 和 z2_suan 每一次循环都没有发生改变,于是永远跳不出循环。

我给你的建议是:同一个程序,统一使用real*8 或real*4,尽量不要混用,除非你很自信能理清他们的关系。

检查Do 循环,尤其是z2_jiashe 和z2_suan,是否应该每次循环不同?fortran_排除错误(2012-04-20 23:22:44)安装好VISUAL FORTRAN后1、运行Developer studio即可开始编译FORTRAN程序2、选择File菜单中的New选项3、在弹出的对话框选择projects标签,其他标签不用管,projects格式选用Fortran console application;在project name 里命名(最好英文名),点击“ok ”4、接下来画面中,选择“an empty project”,点击“finish”5、接下来画面点击“ok”6、再选择一次File菜单中的new7、对话框选用files标签,选择Fortran free format source file ,并在file里命名8、点击“ok”数Source Files 放源文件(.c、.cpp)程序的实现代码全放在这里Header Files 放头文件(.h)声明放在这里Resource Files 资源文件(.rc)放图标、图片、菜单、文字之类的,主要用来做界面的东东一般都放这里External Dependencies 除上三种以外的,程序编译时用到的文件全放这里fortran内部函数出错信息解释内部函数出错信息解释[sourcefile(line)]run-time error M62××MATH错误号函数级数学错误信息M6201 functionnames:DOMAIN error函数的自变量超出了约定的取值域,例如sqrt(-1)M6202 functionname:SING error无意义的变量。

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) address3 "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 。

fortran除法

fortran除法

fortran除法引言Fortran(Formula Translation)是一种广泛应用于科学和工程计算的编程语言。

它是世界上最早的高级编程语言之一,于1957年问世。

Fortran除法是Fortran语言中的一项基本运算,本文将详细介绍Fortran除法的使用方法、注意事项以及一些常见问题的解决方法。

Fortran除法的使用方法在Fortran中,除法运算使用斜杠符号(/)表示。

除法运算可以应用于整数和实数类型的数据。

下面是一些示例:整数除法integer :: a, b, resulta = 10b = 3result= a / b在上述代码中,变量a和b分别被赋值为10和3,然后进行整数除法运算。

结果将存储在变量result中,即result的值为3。

实数除法real :: a, b, resulta = 10.0b = 3.0result= a / b在上述代码中,变量a和b分别被赋值为10.0和3.0,然后进行实数除法运算。

结果将存储在变量result中,即result的值为3.333333。

注意事项在进行Fortran除法运算时,需要注意以下几点:整数除法的结果整数除法的结果将会是一个整数,而不是一个浮点数。

如果除数和被除数都是整数,则结果将向下取整。

例如,10 / 3 的结果将为3,而不是3.333333。

实数除法的精度实数除法的结果将是一个浮点数,其精度取决于所使用的数据类型。

在Fortran中,可以使用不同的实数类型,如real、double precision等,来控制计算结果的精度。

除数为零的情况在进行除法运算时,需要注意除数不能为零。

如果除数为零,将导致运行时错误。

因此,在进行除法运算之前,最好添加一些逻辑判断,确保除数不为零。

常见问题解决方法在实际编程中,可能会遇到一些与Fortran除法相关的常见问题。

下面将介绍一些常见问题的解决方法。

如何处理除数为零的情况?当除数可能为零时,可以使用条件语句来进行判断和处理。

fortran问题

fortran问题

fortran问题imsl7.0中用use linear_operators这句话是会出错的,当时intel 论坛上也有人问,后来intel 给出了个X64 imsl的补丁,但是32位的没有。

要使用包含在linear_operators这个库中的函数时,要用use+原函数例如:上面那个例子把use linear_operators改成use operation_xt即可另外,imsl7.0引用函数和以前版本不一样的补充一点:linear_operators这个文件是这样子的(一看就知道原因了):modulelinear_operatorsusecond_intusedet_intusediag_intusediagonals_intusefft_intuseifft_intuseeye_intuselin_eig_self_intuselin_sol_self_intusenorm_intuseoperation_iuseoperation_ixuseoperation_tuseoperation_huseoperation_txuseoperation_hxuseoperation_xuseoperation_xiuseoperation_xtuseoperation_xhuseorth_intuserand_intuserank_intusesvd_intuseunit_intuseeig_intusechol_intuseisnan_intend module1. 如何加大Stack size?选Project => Settings => Link => Category: Output =>Stack allocationsReserve: 这里填新值(默认为1M,若需要10M,则填10000000)2. 如何用Fortran批量生成文件?设要生成4000个文件,文件名为AA1-AA4000,如何写循环生成文件,而不用写4000次write 命令呢?用内部文件:character(len=80) :: filename,forminteger :: idoi=1,4000select case (i)case (1:9)write(form,'(i1)') icase (10:99)write(form,'(i2)') icase (100:999)write(form,'(i3)') icase (1000:9999)write(form,'(i4)') iend selectwrite(filename,*) "AA",trim(form),".TXT"open(10,file=filename)write(10,*) iclose(10)end dostopend3. 如何用Fortran动态生成输出格式?设有一个数组data(100),输出时,希望每行输出num个数,而num由用户输入,如何实现?用内部文件:character(len=80) :: formreal :: data(100)integer :: i,numdata = (/ (i,i=1,100) /)/10.0read(*,*) numwrite(form,*) "(",num,"f10.3)"write(*,form) datastopend4. MS POWERSTATION4.0是不是很垃圾?POWERSTATION4.0是垃圾,其中Bug太多,多到不可用的地步!在这个主题里,换了CVF后问题就没了的人已有相当的数目。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

楼主为了减少重复回答问题,特编此帖,并不定期添加和更新内容。

错误难免,欢迎讨论,仅供参考。

很多人问哪里可以找到Fortran编译器,有不少热心学友提供网址,特汇集在这里。

虽然俺检验过这些链接,但是它们不一定总有效。

Fortran编译器下载:CVF?FTN95(License:Freeforpersonaluse)以下操作,如无特别说明,都是以为例。

1.如何加大Stacksize?选Project=>Settings=>Link=>Category:Output=>?StackallocationsReserve:这里填新值(默认为1M,若需要10M,则填)2.如何用Fortran批量生成文件?设要生成4000个文件,文件名为AA1-AA4000,如何写循环生成文件,而不用写4000次write 命令呢?用内部文件:character(len=80)::filename,forminteger::idoi=1,4000selectcase(i)case(1:9)write(form,'(i1)')icase(10:99)write(form,'(i2)')icase(100:999)write(form,'(i3)')icase(1000:9999)write(form,'(i4)')iendselectwrite(filename,*)"AA",trim(form),".TXT"open(10,file=filename)write(10,*)iclose(10)enddo?stopend3.如何用Fortran动态生成输出格式?设有一个数组data(100),输出时,希望每行输出num个数,而num由用户输入,如何实现?用内部文件:character(len=80)::formreal::data(100)integer::i,numdata=(/(i,i=1,100)/)/read(*,*)numwrite(form,*)"(",num,""write(*,form)datastopend4.MS是不是很垃圾?是垃圾,其中Bug太多,多到不可用的地步!在这个主题里,换了CVF后问题就没了的人已有相当的数目。

如果你用,遇到莫名其妙的错误,建议换,这是一个比较成熟的编译器。

5.如何用F90/95生成随机数?注意:现在计算机产生的随机数都是伪随机数。

random_number(x)产生一个0到1之间的随机数(x可以是向量),但是每次总是那几个数。

用了random_seed()后,系统根据日期和时间随机地提供种子,使得随机数更随机了。

programrandomimplicitnonereal::xcallrandom_seed()!系统根据日期和时间随机地提供种子callrandom_number(x)!每次的随机数就都不一样了write(*,*)xstopendprogramrandom6.函数/子程序超载的例子设要编一个两个变量值互换的子程序swap(a,b),哑元a,b可能是实型数,整型数,数组,矩阵,字符串,派生类型等等。

但是希望只用一个子程序接口swap(a,b)来实现。

F90可以用类属接口来实现这种子程序超载:moduleUtilitiesimplicitnoneprivateI_Swap,R_Swap,RVec_Swap,RMat_Swap,Type_Swappublic::SwapinterfaceSwapmoduleprocedureI_Swap,R_Swap,RVec_Swap,RMat_Swap,Type_Swapendinterfacecontainssubroutinei_swap(a,b)!整型置换integer(ikind),intent(inout)::a,binteger(ikind)::t。

!略endsubroutinei_swapsubroutiner_swap(a,b)!实型置换real(rkind),intent(inout)::a,breal(rkind)::tt=aa=bb=treturnendsubroutiner_swapsubroutineRVec_swap(a,b)!实型向量置换real(rkind),intent(inout)::a(:),b(:)integer(ikind)::idoi=1,size(a)callR_Swap(a(i),b(i))enddoreturnendsubroutineRVec_swapsubroutineRMat_swap(a,b)!实型矩阵置换。

!略endsubroutineRMat_swapsubroutineType_swap(a,b)!派生类型置换。

!略endsubroutineType_swapendmoduleUtilities7.如何在CVF中为多行代码加注释?见:8.推荐好的代码风格根据F90子集语言ELF90和F的要求整理(部分)。

“强迫用”的语言特性:+F90的自由格式的源代码。

+implicitnone。

+子过程的哑元都要有intent属性。

+函数子程序的哑元必须指定为intent(in)。

+所有子程序和函数都放在模块(module)中,然后引用(use)该模块;或者放在program 中。

+数组哑元要求是假定形状的,或者有固定的维数和大小。

字符哑元要求是假定长度的。

+对于recursivefunction(递归函数)语句,必须有result子句。

+在所有派生类型(type)的定义语句中,必须用双冒号分隔符(::)。

+主程序要求有program语句。

+在程序单元的end语句中要求后跟程序单元的类型和名称。

+在endtype语句中要求后跟类型的名称。

+endprogram前必须有stop语句以表示停止执行。

+子过程中必须有return语句,以表示返回。

+subroutines()并且calls(),即必须有括号。

“不得用”的语言特性:-allocatable、intent、pointer、save、dimension、parameter和target语句形式。

(用属性形式代替。

)-external语句形式。

(用显式的接口代替。

)-assign、赋值goto、交错return、continue、entry、和计算goto语句。

-include文件。

(用模块代替。

)-data和blockdata。

(在类型声明语句中进行初始化或赋值。

)-common块。

(将全局数据放在模块中,用模块代替。

)-equivalence。

(被认为是许多难以查找的编程错误的来源。

)-doubleprecision语句。

(用real语句声明双精度的实型数。

)-语句函数。

(用内部函数代替。

)-专用固有函数。

(用类属函数代替。

)-假定大小数组。

(用假定形状数组代替。

)-don(其中n为语句标号)。

(用do和enddo代替。

)-非整数do变量和表达式。

-同一行上多条语句。

-逻辑型case表达式。

-从if块外面分支到endif。

-where语句形式。

(用where结构形式。

)-在open和inquire语句中的blank=说明符。

-双字关键词之间要求有空格:inout,goto。

不能写为inout,goto。

9.将字符串改为大写的子程序subroutineUpCase(str)!=========================================!changetouppercase!=========================================character(len=*),intent(inout)::strinteger(4)::icha,LL,icvalinteger(4),parameter::diff=ichar('a')-ichar('A')LL=len_trim(str)doicha=1,LLicval=ichar(str(icha:icha))if(icval>=ichar('a').and.icval<=ichar('z'))thenstr(icha:icha)=char(icval-diff)endifenddoreturnendsubroutineUpCase10.CVF中源代码信息浏览默认情况下,代码信息浏览是失效的(GotoDefinition/Reference都不起作用),你可以将其启用:1.Project/Settings/Fortran,选中GenerateSourceBrowseInformation。

2.选BrowseInfo卡页,选中BuildBrowseinfofile,点击OK。

3.Build程序。

代码浏览器仅当成功Build程序后才可应用。

4.Tools/SourceBrowser。

5.在Browse对话框底部,找到Casesensitive复选框。

Fortran是大小写不敏感的语言,去除Casesensitive的选中。

点击OK。

?6.现在可以用Browse对话框来浏览函数调用关系以及变量声明和引用关系。

7.光标置于一个变量名或函数名中,鼠标右键:GotoDefinition使光标跳到该变量声明或函数定义语句;GotoReference使光标跳到该变量的引用或函数引用语句。

注:(Addison提供)IVF中现在不适用,因为此技术是属于MS的,不是INTEL的,所以,intel正在与MS就有关问题进行磋商,目前的进展比较顺利,可能要在以后的版本中支持,目前还没有时间表。

11.如何在CVF中检验代码是否符合F90/95标准?为了检验你的代码是否符合F90或F95标准,在CVF中选:Project/Settings...选Fortran页卡Category下拉框选:CompilationDiagnosticsFortranStandardChecking下拉框选:Fortran90或Fortran95这样,凡是CVF自家扩展的语法就都会有提示了。

例:typetestinteger,allocatable::a(:)integer,pointer::b(:)endtypetest若选了标准检验,会提示:Warning:Allocatablefieldsofderivedtypesarenon-standard[A]也就是说按照F90/95标准,type中不允许用allocatable。

相关文档
最新文档