資源描述:
《采用fortran編程提取系統(tǒng)時(shí)間》由會(huì)員上傳分享,免費(fèi)在線(xiàn)閱讀,更多相關(guān)內(nèi)容在應(yīng)用文檔-天天文庫(kù)。
1、采用Fortran編程提取系統(tǒng)時(shí)間文一豬編程中我們往往需要提取系統(tǒng)時(shí)間,從而確定程序或子程序的運(yùn)行時(shí)間。我想在這里上有幾個(gè)目的,比如說(shuō)要對(duì)程序進(jìn)行優(yōu)化,當(dāng)然你得先優(yōu)化比較費(fèi)時(shí)的子程序,或者你要直接從實(shí)際計(jì)算上計(jì)算出程序的復(fù)雜度,簡(jiǎn)單說(shuō)就是計(jì)算時(shí)間同計(jì)算量的函數(shù)關(guān)系。在這里給出關(guān)于采用Fortran95語(yǔ)言編寫(xiě)的提取系統(tǒng)時(shí)間程序。Example1是網(wǎng)上帖子里的程序,不過(guò)該程序采用的time程序似乎不是Fortran95的標(biāo)準(zhǔn)程序。在Example2給出的是自編的采用模塊化編程調(diào)用cpu_time程序,使用F95的朋友可以很容易地將該程序嵌入到你們的程序中
2、使用。Mar.14,2013例子1:programTimeNowcharacter*8::nowinteger::hh,mm,sscalltime(now)!讀系統(tǒng)時(shí)間write(*,*)now!寫(xiě)出時(shí)間字符串!用字符變量now作為內(nèi)部文件,從中將時(shí)、分、秒作為整數(shù)讀出read(now,"(I2,1x,I2,1x,I2)")hh,mm,ss!字符轉(zhuǎn)換為write(*,*)hh,mm,ss!寫(xiě)出時(shí)、分、秒的整數(shù)值stopendprogramTimeNow帖子:http://www.programfan.com/club/showtxt.asp?id=70
3、407http://bbs.pfan.cn/post-70559.html例子2:moduleget_timepublicdisplay_timecontainssubroutinedisplay_time()implicitnonedoubleprecisionnowtimecallcpu_time(nowtime)write(*,'(1x,a,1e10.3)')"NowTimeis",nowtimereturnendsubroutineendmoduleprogramtest_get_timeuseget_timeimplicitdoublepre
4、cision(a-h,o-z),integer(i-n)calldisplay_time()doi=1,1000000doj=1,2000x=dlog(1.1d0)enddoenddocalldisplay_time()stop"Theend!"endprogram附錄1:第2章Fortran95內(nèi)函數(shù)本章列出了f95編譯器可識(shí)別的內(nèi)函數(shù)名稱(chēng)。2.1標(biāo)準(zhǔn)Fortran95的通用內(nèi)函數(shù)本節(jié)中介紹的Fortran95通用內(nèi)函數(shù)按其在Fortran95標(biāo)準(zhǔn)中的功能進(jìn)行分組。所示參數(shù)是在采用關(guān)鍵字形式時(shí)可以用作參數(shù)關(guān)鍵字的名稱(chēng),如cmplx(Y=B,KIND=
5、M,X=A)中所示。有關(guān)這些通用內(nèi)過(guò)程的詳細(xì)說(shuō)明,請(qǐng)查閱Fortran95標(biāo)準(zhǔn)。2.1.1參數(shù)存在查詢(xún)函數(shù)通用內(nèi)函數(shù)名說(shuō)明PRESENT存在參數(shù)2.1.2數(shù)值函數(shù)通用內(nèi)函數(shù)名說(shuō)明ABS(A)絕對(duì)值A(chǔ)IMAG(Z)復(fù)數(shù)的虛部AINT(A[,KIND])整數(shù)截尾ANINT(A[,KIND])最近的整數(shù)CEILING(A[,KIND])大于或等于數(shù)值的最小整數(shù)CMPLX(X[,Y,KIND])轉(zhuǎn)換為復(fù)數(shù)類(lèi)型CONJG(Z)共軛復(fù)數(shù)DBLE(A)轉(zhuǎn)換為雙精度實(shí)數(shù)類(lèi)型DIM(X,Y)正偏差DPROD(X,Y)雙精度實(shí)數(shù)乘積FLOOR(A[,KIND])小于或等于
6、數(shù)值的最大整數(shù)INT(A[,KIND])轉(zhuǎn)換為整數(shù)類(lèi)型MAX(A1,A2[,A3,...])最大值MIN(A1,A2[,A3,...])最小值MOD(A,P)余數(shù)函數(shù)MODULO(A,P)模數(shù)函數(shù)NINT(A[,KIND])最近的整數(shù)REAL(A[,KIND])轉(zhuǎn)換為實(shí)數(shù)類(lèi)型SIGN(A,B)符號(hào)傳輸2.1.3數(shù)學(xué)函數(shù)通用內(nèi)函數(shù)名說(shuō)明ACOS(X)反余弦ASIN(X)反正弦ATAN(X)反正切ATAN2(Y,X)反正切COS(X)余弦COSH(X)雙曲余弦EXP(X)指數(shù)LOG(X)自然對(duì)數(shù)LOG10(X)常用對(duì)數(shù)(10為基數(shù))SIN(X)正弦SINH
7、(X)雙曲正弦SQRT(X)平方根TAN(X)正切TANH(X)雙曲正切2.1.4字符函數(shù)通用內(nèi)函數(shù)名說(shuō)明ACHAR(I)按ASCII整理序列排列時(shí)給定位置的字符ADJUSTL(STRING)齊左調(diào)整ADJUSTR(STRING)齊右調(diào)整CHAR(I[,KIND])按處理器整理序列排列時(shí)給定位置的字符IACHAR(C)按ASCII整理序列排列時(shí)字符的位置ICHAR(C)按處理器整理序列排列時(shí)字符的位置INDEX(STRING,SUBSTRING[,BACK])子串的起始位置LEN_TRIM(STRING)長(zhǎng)度不包含結(jié)尾的空白字符LGE(STRING_A
8、,STRING_B)詞法上大于或等于LGT(STRING_A,STRING_B)詞法上大于LL