SunMicrosystems,Inc.请将有关本文档的意见和建议提交至:库参考Sun™Studio11文件号码819-4757-102005年11月,修订版A版权所有©2005SunMicrosystems,Inc.,4150NetworkCircle,SantaClara,California95054,U.S.A.保留所有权利。美国政府权利-商业用途。政府用户应遵循SunMicrosystems,Inc.的标准许可协议,以及FAR(FederalAcquisitionRegulations,即“联邦政府采购法规”)的适用条款及其补充条款。必须依据许可证条款使用。本发行版可能包含由第三方开发的内容。本产品的某些部分可能是从BerkeleyBSD系统衍生出来的,并获得了加利福尼亚大学的许可。UNIX是X/OpenCompany,Ltd.在美国和其他国家/地区独家许可的注册商标。Sun、SunMicrosystems、Sun徽标、Java和JavaHelp是SunMicrosystems,Inc.在美国和其他国家/地区的商标或注册商标。所有的SPARC商标的使用均已获得许可,它们是SPARCInternational,Inc.在美国和其他国家/地区的商标或注册商标。标有SPARC商标的产品均基于由SunMicrosystems,Inc.开发的体系结构。本服务手册所介绍的产品以及所包含的信息受美国出口控制法制约,并应遵守其他国家/地区的进出口法律。严禁将本产品直接或间接地用于核设施、导弹、生化武器或海上核设施,也不能直接或间接地出口给核设施、导弹、生化武器或海上核设施的昀终用户。严禁出口或转口到美国禁运的国家/地区以及美国禁止出口清单中所包含的实体,包括但不限于被禁止的个人以及特别指定的国家/地区的公民。本文档按“原样”提供,对于所有明示或默示的条件、陈述和担保,包括对适销性、适用性或非侵权性的默示保证,均不承担任何责任,除非此免责声明的适用范围在法律上无效。iii目录阅读本书之前xi印刷约定xiShell提示符xii支持的平台xiii访问SunStudio软件和手册页xiii访问编译器和工具文档xvi访问相关的Solaris文档xviii开发者资源xviii联系Sun技术支持xixSun欢迎您提出意见xix1.Fortran库例程1–11.1数据类型注意事项1–11.264位环境1–21.3Fortran数学函数1–31.3.1单精度函数1–31.3.2双精度函数1–61.3.3四倍精度函数1–91.4Fortran库例程参考1–111.4.1abort:终止和写入核心文件1–11iv《Fortran库参考》2005年11月1.4.2access:检查文件权限或存在性1–111.4.3alarm:在指定的时间后调用子例程1–121.4.4bit:位函数:and、or、…、bit、setbit、…1–131.4.5chdir:更改默认目录1–161.4.6chmod:更改文件的模式1–171.4.7date:获取以字符串表示的当前日期1–181.4.8dtime,etime:经过的执行时间1–201.4.9exit:终止进程并设置状态1–231.4.10fdate:以ASCII字符串返回日期和时间1–231.4.11flush:刷新逻辑单元的输出1–241.4.12fork:创建当前进程的副本1–251.4.13fseek,ftell:确定文件的位置以及重新确定文件的位置1–251.4.14fseeko64,ftello64:确定大文件的位置以及重新确定大文件的位置1–271.4.15getarg,iargc:获取命令行参数1–291.4.16getc,fgetc:获取下一个字符1–301.4.17getcwd:获取当前工作目录的路径1–321.4.18getenv:获取环境变量的值1–331.4.19getfd:获取外部单元编号的文件描述符1–341.4.20getfilep:获取外部单元编号的文件指针1–341.4.21getlog:获取用户的登录名1–361.4.22getpid:获取进程ID1–361.4.23getuid,getgid:获取进程的用户ID或组ID1–361.4.24hostnm:获取当前主机的名称1–371.4.25idate:返回当前日期1–381.4.26ieee_flags,ieee_handler,sigfpe:IEEE算术1–381.4.27index,rindex,lnblnk:子串的索引或长度。1–441.4.28inmax:返回昀大正整数1–451.4.29itime:当前时间1–46目录v1.4.30kill:将信号发给进程1–471.4.31link,symlnk:链接到现有的文件1–471.4.32loc:返回对象的地址1–491.4.33long,short:整型对象转换1–491.4.34longjmp,isetjmp:返回至isetjmp设置的位置1–501.4.35malloc,malloc64,realloc,free:分配/重新分配/释放内存1–521.4.36mvbits:移动位字段1–561.4.37perror,gerror,ierrno:获取系统错误消息1–571.4.38putc,fputc:将字符写入逻辑单元1–581.4.39qsort,qsort64:对一维数组的元素进行排序1–601.4.40ran:生成一个介于0和1之间的随机数1–621.4.41rand,drand,irand:返回随机值1–631.4.42rename:重命名文件1–641.4.43secnds:获取以秒数表示的系统时间并减去参数1–651.4.44set_io_err_handler,get_io_err_handler:设置并获取I/O错误处理程序1–651.4.45sh:快速执行sh命令1–681.4.46signal:更改信号的操作1–691.4.47sleep:一段时间暂停执行1–701.4.48stat,lstat,fstat:获取文件状态1–701.4.49stat64,lstat64,fstat64:获取文件状态1–731.4.50system:执行系统命令1–731.4.51time,ctime,ltime,gmtime:获取系统时间1–741.4.52ttynam,isatty:获取终端端口的名称1–781.4.53unlink:删除文件1–791.4.54wait:等待进程终止1–802.Fortran95内部函数2–12.1标准Fortran95的通用内部函数2–1vi《Fortran库参考》2005年11月2.1.1参数存在查询函数2–12.1.2数值函数2–22.1.3数学函数2–22.1.4字符函数2–32.1.5字符查询函数2–42.1.6种类函数2–42.1.7逻辑函数2–42.1.8数值查询函数2–42.1.9位查询函数2–52.1.10位操作函数2–52.1.11传送函数2–52.1.12浮点处理函数2–62.1.13向量和矩阵乘法函数2–62.1.14约简数组函数2–62.1.15数组查询函数2–72.1.16数组构造函数2–72.1.17数组整形函数2–72.1.18数组处理函数2–72.1.19数组位置函数2–82.1.20指针关联状态函数2–82.1.21系统环境调节过程2–82.1.22内子例程2–92.1.23内部函数的专用名称2–92.2Fortran2000模块例程2–122.2.1IEEE算术和异常模块2–122.2.2C绑定模块2–152.3非标准Fortran95内部函数2–152.3.1基本线性代数函数(BLAS)2–16目录vii2.3.2区间运算内部函数2–162.3.3其他供应商的内部函数2–172.3.4其他扩展2–183.FORTRAN77和VMS内部函数3–13.1算术和数学函数3–23.1.1算术函数3–23.1.2类型转换函数3–43.1.3三角函数3–63.1.4其他数学函数3–83.2字符函数3–93.3杂项函数3–103.3.1位操作✠3–103.3.2环境查询函数✠3–113.3.3内存✠3–123.4备注3–133.4.1有关函数的注释3–143.5VMS内部函数3–183.5.1VMS双精度复数3–183.5.2VMS基于度数的三角函数3–193.5.3VMS位操作3–203.5.4VMS多个整数类型3–21索引索引–1viii《Fortran库参考》2005年11月ix表表1-164位环境的库例程1–3表1-2单精度数学函数1–4表1-3双精度数学函数1–7表1-4四倍精度libm函数1–10表1-5IEEE算术支持例程1–39表1-6ieee_flags(action,mode,in,out)参数和操作1–39表1-7ieee_handler(action,in,out)参数1–40表2-1Fortran95内部函数的专用名称和通用名称2–9表2-2BLAS内部函数2–16表2-3CrayCF90和其他编译器的内部函数2–17表3-1Fortran77算术函数3–2表3-2Fortran77类型转换函数3–4表3-3Fortran77三角函数3–6表3-4其他Fortran77数学函数3–8表3-5Fortran77字符函数3–9表3-6Fortran77按位函数3–10表3-7Fortran77环境查询函数3–11表3-8Fortran77内存函数3–12表3-9VMS双精度复数函数3–18表3-10VMS基于度数的三角函数3–19x《Fortran库参考》2005年11月表3-11VMS位操作函数3–20表3-12VMS整数函数3–21xi阅读本书之前《Fortran库参考》介绍了Sun™StudioFortran库中的内部函数和例程。该参考手册适用于具有Fortran语言和Solaris™操作环境使用经验的编程人员。该指南适用于具有Fortran语言使用经验以及想了解如何有效地使用SunFortran编译器的科研人员、工程师和编程人员。同时,假定这些人员熟悉Solaris操作环境或UNIX®。配套提供的《Fortran编程指南》中介绍了Solaris操作环境中的Fortran编程问题,其中包括输入/输出、应用程序开发、库的创建和使用、程序分析、移植、优化和并行化。印刷约定表P-1字体约定字体aa浏览器的设置可能会与这些设置不同。含义示例AaBbCc123命令、文件和目录的名称;计算机屏幕输出。编辑.login文件。使用ls-a列出所有文件。%Youhavemail.AaBbCc123用户键入的内容,与计算机屏幕输出的显示不同。%suPassword:AaBbCc123保留未译的新词或术语以及要强调的词。要使用实名或值替换的命令行变量。这些称为class选项。要删除文件,请键入rmfilename。新词术语强调新词或术语以及要强调的词。您必须成为超级用户才能执行此操作。《书名》书名阅读《用户指南》的第6章。xii《Fortran库参考》2005年11月■符号∆表示有效的空格:■FORTRAN77标准使用较旧的约定,以大写字母的形式拼写名称“FORTRAN”。当前的约定使用小写字母:“Fortran95”■出现的联机手册页参考带有主题名称和章节号。例如,库例程GETENV的参考显示为getenv(3F),这意味着访问此手册页的man命令为:man-s3FgetenvShell提示符∆∆36.001表P-2代码约定代码符号含义表示法代码示例[]方括号中包含可选参数。O[n]-O4,-O{}花括号中包含所需选项的选项集合。d{y|n}-dy|分隔变量的“|”或“-”符号,只能选择其一。B{dynamic|static}-Bstatic:与逗号一样,分号有时可用