版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
常用內部過程
作為一門古老而又年輕的高級電腦語言,Fortran提供了大量的內部過程供程式員在編程過程中使用。並且隨著新標準的推出,Fortran語言的內部過程還在繼續擴展,能夠提供更多的常用功能,大大減輕了程式員的重複性勞動。本節主要介紹常用內部過程的基本知識。6.1內部過程概述在Fortran語言中,有很多常用的數學過程、字元處理過程和系統過程。其中,數學過程和字元處理過程通常是以函數副程式的形式存在,而系統過程則通常是以子例行副程式的形式存在。這些過程為應用程式的編寫提供了非常方便的手段和豐富的功能。Fortran語言將這些功能各異、用途各異的過程分別編寫成一個個獨立的副程式,編譯後組成一個大的標準過程庫(有時也稱為標準函數庫),存放在外部存儲介質(如電腦的硬碟)上。用戶在完成自身根源程式的編譯之後,使用LINK命令將已翻譯成二進位指令的目標程式與這個標準過程庫連接起來。通過這個連接,將程式中出現過程名的地方用標準過程庫中相應的一組指令代替,最終形成統一的用戶可執行程式。6.2常用數學函數作為一種主要面向科學、工程和事務處理中的數值計算問題的高級電腦語言,Fortran提供了豐富的數學函數供用戶在編程時使用。本小節主要介紹在日常編程中經常會遇到和使用的數學函數。6.2.1絕對值函數絕對值函數用於求出數據的絕對值,函數的原型如下:C=ABS(X)其中,ABS是Fortran中絕對值函數的通用名。除了這個通用名外,絕對值函數還有4個專用名,它們是:IABS,專用於求默認種別的整型數據的絕對值,返回值也為默認種別的整型數據。ABS,專用於求默認種別的實型數據的絕對值,返回值也為默認種別的實型數據。DABS,專用於求雙精度實型數據的絕對值,返回值也為雙精度的實型數據。CABS,專用於默認種別的複型數據的絕對值,返回值也為默認種別的複型數據。6.2.2指數函數指數函數用於求出數據的指數值,函數的原型如下:C=EXP(X)其中,EXP是Fortran中指數函數的通用名。除了這個通用名外,指數函數還有3個專用名,它們是:EXP,專用於求默認種別的實型數據的指數值,返回值也為默認種別的整型數據。DEXP,專用於求雙精度的實型數據的指數值,返回值也為雙精度的實型數據。CEXP,專用於默認種別的複型數據的指數值,返回值也為默認種別的複型數據。6.2.3正弦函數正弦函數用於求出數據的正弦值,函數的原型如下:C=SIN(X)其中,SIN是Fortran中正弦函數的通用名。除了這個通用名外,正弦函數還有3個專用名,它們是:SIN,專用於求默認種別的實型數據的正弦值,返回值也為默認種別的整型數據。DSIN,專用於求雙精度的實型數據的正弦值,返回值也為雙精度的實型數據。CSIN,專用於默認種別的複型數據的正弦值,返回值也為默認種別的複型數據。函數在數學上等價於。函數中參數的單位是弧度而不是度,在使用時需要注意這一點。6.2.4余弦函數余弦函數用於求出數據的余弦值,函數的原型如下:C=COS(X)其中,COS是Fortran中余弦函數的通用名。除了這個通用名外,余弦函數還有3個專用名,它們是:COS,專用於求默認種別的實型數據的余弦值,返回值也為默認種別的整型數據。DCOS,專用於求雙精度的實型數據的余弦值,返回值也為雙精度的實型數據。CCOS,專用於默認種別的複型數據的余弦值,返回值也為默認種別的複型數據。6.2.5反正弦函數反正弦函數用於求出數據的反正弦值,函數的原型如下:C=ASIN(X)其中,ASIN是Fortran中反正弦函數的通用名。除了這個通用名外,反正弦函數還有2個專用名,它們是:ASIN,專用於求默認種別的實型數據的反正弦值,返回值也為默認種別的整型數據。DASIN,專用於求雙精度的實型數據的反正弦值,返回值也為雙精度的實型數據。6.2.6反余弦函數反余弦函數用於求出數據的反余弦值,函數的原型如下:C=ACOS(X)其中,ACOS是Fortran中反余弦函數的通用名。除了這個通用名外,反余弦函數還有2個專用名,它們是:ACOS,專用於求默認種別的實型數據的反余弦值,返回值也為默認種別的整型數據。DACOS,專用於求雙精度的實型數據的反余弦值,返回值也為雙精度的實型數據。6.2.7正切函數正切函數用於求出數據的正切值,函數的原型如下:C=TAN(X)其中,TAN是Fortran中正切函數的通用名。除了這個通用名外,正切函數還有2個專用名,它們是:TAN,專用於求默認種別的實型數據的正切值,返回值也為默認種別的整型數據。DTAN,專用於求雙精度的實型數據的正切值,返回值也為雙精度的實型數據。6.2.8反正切函數反正切函數用於求出數據的反正切值,函數的原型如下:C=ATAN(X)其中,ATAN是Fortran中反正切函數的通用名。除了這個通用名外,反正切函數還有2個專用名,它們是:ATAN,專用於求默認種別的實型數據的反正切值,返回值也為默認種別的整型數據。DATAN,專用於求雙精度的實型數據的反正切值,返回值也為雙精度的實型數據。6.2.9自然對數函數自然對數函數用於求數據的自然對數值,函數的原型如下:C=LOG(X)其中,LOG是Fortran中自然對數函數的通用名。除了這個通用名外,自然對數函數還有3個專用名,它們是:ALOG,專用於求默認種別的實型數據的自然對數值,返回值也為默認種別的整型數據。DLOG,專用於求雙精度的實型數據的自然對數值,返回值也為雙精度的實型數據。CLOG,專用於求默認種別的複型數據的自然對數值,返回值也為默認種別的複型數據。6.2.10常用對數函數常用對數函數用於求數據的常用對數值,函數的原型如下:C=LOG10(X)其中,LOG10是Fortran中常用對數函數的通用名。除了這個通用名外,常用對數函數還有2個專用名,它們是:ALOG10,專用於求默認種別的實型數據的常用對數值,返回值也為默認種別的整型數據。DLOG10,專用於求雙精度的實型數據的常用對數值,返回值也為雙精度的實型數據。6.2.11取整函數取整函數用於將數據轉換為整型,函數的原型如下:C=INT(X)其中,INT是Fortran中取整函數的通用名。除了這個通用名外,取整函數還有3個專用名,它們是:IFIX,專用於將默認種別的實型數據轉換為整數,返回值為默認種別的整型數據。INT,專用於將默認種別的實型數據轉換為整數,返回值為默認種別的整型數據。IDINT,專用於將雙精度的實型數據轉換為整數,返回值為默認種別的整型數據。函數的執行結果同數學上的取整有所不同,Fortran中的取整函數只是將數據的小數部分截去,不使用四捨五入規則。函數的參數可以是實型、整型和複型。6.2.12求餘函數求餘函數用於求第一個變數被第二個變數所除後的餘數,函數的原型如下:C=MOD(X1,X2)其中,MOD是Fortran中求餘函數的通用名。除了這個通用名外,求餘函數還有2個專用名,它們是:MOD,適用於默認種別的整型數據,返回值為默認種別的整型數據。AMOD,適用於默認種別的實型數據,返回值為默認種別的實型數據。6.2.13取符號函數取符號函數返回第一個參數的絕對值與第二個參數的符號的乘積,函數的原型如下:C=SIGN(X1,X2)其中,SIGN是Fortran中取符號函數的通用名。除了這個通用名外,取符號函數還有3個專用名,它們是:ISIGN,適用於默認種別的整型數據,返回值為默認種別的整型數據。SIGN,適用於默認種別的實型數據,返回值為默認種別的實型數據。DSIGN,適用於雙精度的實型數據,返回值為雙精度的實型數據。6.2.14最大值函數最大值函數用於找出一系列數據中的最大值,函數的原型為:C=MAX(X1,X2[,X3]…)其中,MAX是Fortran中最大值函數的通用名。除了這個通用名外,最大值函數還有5個專用名,它們是:MAX0,適用於默認種別的整型數據,返回值為默認種別的整型數據。AMAX0,適用於默認種別的整型數據,返回值為默認種別的實型數據。MAX1,適用於默認種別的實型數據,返回值為默認種別的整型數據。AMAX1,適用於默認種別的實型數據,返回值為默認種別的實型數據。DMAX1,適用於雙精度的實型數據,返回值為雙精度的實型數據。6.2.15最小值函數最小值函數用於找出一系列數據中的最小值,函數的原型為:C=MIN(X1,X2[,X3]…)其中,MIN是Fortran中最小值函數的通用名。除了這個通用名外,最小值函數還有5個專用名,它們是:MIN0,適用於默認種別的整型數據,返回值為默認種別的整型數據。AMIN0,適用於默認種別的整型數據,返回值為默認種別的實型數據。MIN1,適用於默認種別的實型數據,返回值為默認種別的整型數據。AMIN1,適用於默認種別的實型數據,返回值為默認種別的實型數據。DMIN1,適用於雙精度的實型數據,返回值為雙精度的實型數據。6.3常用字符函數Fortran90/95的內部函數中新增了許多和字元型數據操作有關的函數供用戶使用,可以很方便地進行各種字元操作。6.3.1字元與數值轉換函數這是一系列函數的總稱,涉及到4個基本函數:ICHAR,CHAR,IACHR和ACHAR函數。Fortran90/95中允許把字元型的值轉換成數值型的值(已知字元得到字元在某種字元集中的序號數值),也可把數值型的值轉換成字元型的值(已知字元在某種字元集中的序號數值進而得到該位置上的字元)。函數ICHAR的作用是根據字元得到字元在電腦字元集中的位置,函數的原型為:C=ICHAR(字元數據)6.3.2字串長度函數字串長度函數用於求出參數字元實體的字段長度,函數的原型為:C=LEN(string)其中,string必須是字元型,可以是字元標量也可以是字元數組。函數返回一個正整數,為該字元實體的字段長度(包括尾隨空格、中間空格在內)。比如LEN(‘ABC123’)的值是9(6個字元加3個空格)。如果想要得到不計尾部空格的字串長度,則可以使用LEN_TRIM函數。函數的原型如下:C=LEN_TRIM(string)6.3.3子字串位置索引函數子字串位置索引函數的作用是找出指定子字串在目標字串內的起始位置,函數的原型如下:C=INDEX(string,substring[,back])其中,string表示要在其中進行索引的目標字串;substring表示子字串;back為邏輯型變數,當back的值為.TRUE.時表示從目標字串的後面開始搜索,當back的值為.FALSE.或省略不寫時,表示從目標字串的前面開始搜索。函數值返回一個正整數,指明子字串在目標字串中是從第幾個字元開始的。目標字串和子字串可以是任何形式的字元實體。如果目標字串中不含有子字串中的內容,則函數的返回值為0。例如INDEX(‘VitaminC’,‘i’)的值為2;INDEX(‘VitaminC’,‘i’,BACK=.TRUE.)的值為6;INDEX(‘VitaminC’,‘b’)的值為0。6.3.4字串驗證函數字串驗證函數的作用是確認指定的字元集中是否包含了給定字串中所有的字元,函數的原型為:C=VERIFY(string,set,[,back])其中,string為要在其中進行驗證的字元集;set為給定的字串;back表示是從字元集的前面還是後面開始驗證:當back值為.TRUE.時表示從後面開始驗證,當back的值為.FALSE.或省略不寫時表示從前面開始驗證。函數的返回值是一個正整數,指明給定字串中與字元集相異的第一個字元是從左邊第幾個字元開始的。如果沒有相異的字元,則返回函數值為0。比如VERIFY('banana','nbc')的值為2,VERIFY('banana','nbc',BACK=.TRUE.)的值為6,VERIFY('banana','nbca')的值為0。6.3.5尾部空格除去函數尾部空格除去函數的作用就是除去字串尾部的尾隨空格,函數的原型為:C=TRIM(string)函數的返回值與函數的輸入參數類型相同、種別相同。返回值就是輸入參數除去尾部空格後剩餘的部分。比如TRIM(‘ABC123’)///’34’的值是’ABC12334’。這個函數在進行檔案名的處理上較為方便:為了保存檔的完整路徑名稱,通常需要使用一個字段寬度較大的字元變數(在Windows系統下,如果使用系統函數,一般要求256個字元寬度)。如果輸入的檔實際路徑名較短,則在顯示時會留下大段的空格。使用TRIM函數就可以避免這種現象。6.3.6字元大小比較函數字元大小比較函數是一個函數族,共包含了4個基本函數。其作用就是比較字元在ASCII字元集中的先後位置,其原型為:C=LGE(string_a,string_b)C=LGT(string_a,string_b)C=LLE(string_a,string_b)C=LLT(string_a,string_b)四個函數都是用兩個字元型實體作為參數,用來判斷它們之間是否滿足大於等於、大於、小於等於、小於關係。6.4常用系統過程在Fortran90/95中還增加了許多常用的系統過程,這些系統過程大多採用子例行副程式的形式。這裏介紹的主要是用於獲得系統時間和亂數的系統過程。6.4.1CPU時間函數該函數用於返回同處理器無關的精確的處理器運行時間,單位為秒。過程的原型如下:CALLCPU_TIME(time)其中,time是一個實型變數,用於保存處理器的運行時間。如果過程不能返回有意義的時間,則會返回一個與處理器無關的負值。CPU_TIME函數可以用於獲得某一段可執行代碼在CPU中的實際運行時間,比如下麵的代碼段用於確定代碼執行時間並將其列印出來:
REAL::time_begin,time_end……CALLCPU_TIME(time_begin)!可執行代碼段
CALLCPU_TIME(time_end)PRINT*,'Timeofoperationwas',time_end-time_begin,'seconds'6.4.2日期和
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年注册消防工程师继续教育全套试题及答案
- 2025下半年幼儿教师资格考试《综合素质》真题及答案
- 2025中医闭经试题答案
- 2026年二级建造师继续教育考试题库库及答案解析
- 2026年村级艾梅乙模拟试题带答案
- 中药材知识培训
- 2026下半年小学语文教资面试古文题
- 2026年胸外科护理工作总结与2026年发展规划
- 福建财会岗2026面试模拟练习配套答题思路含解析
- 农业岗2026面试自测卷模拟练习配套答题思路
- 加油站油罐安装施工方案
- 中小学内部控制相关制度
- 文件会签审批制度及流程
- 探索openEHR模型:原理、方法与系统实现的深度剖析
- 中华传统文化教学课件(共8章)第三章 感受传统文学之美
- T-CITS 256-2025 分子检测实验室核酸去污染技术规范
- 菜鸟驿转让合同协议书
- 北京市住宅物业服务标准(三级)
- 特殊教育学校家长培训
- 2025年医学实验室质量控制知识试题及答案
- 基础机械结构知识培训课件
评论
0/150
提交评论