资源描述:
《采用fortran编程提取系统时间》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、采用Fortran编程提取系统时间文一猪编程中我们往往需要提取系统时间,从而确定程序或子程序的运行时间。我想在这里上有几个目的,比如说要对程序进行优化,当然你得先优化比较费时的子程序,或者你要直接从实际计算上计算出程序的复杂度,简单说就是计算时间同计算量的函数关系。在这里给出关于采用Fortran95语言编写的提取系统时间程序。Example1是网上帖子里的程序,不过该程序采用的time程序似乎不是Fortran95的标准程序。在Example2给出的是自编的采用模块化编程调用cpu_time程序,使用F95的朋友可以很容易地将该程序嵌入到你们的程序中
2、使用。Mar.14,2013例子1:programTimeNowcharacter*8::nowinteger::hh,mm,sscalltime(now)!读系统时间write(*,*)now!写出时间字符串!用字符变量now作为内部文件,从中将时、分、秒作为整数读出read(now,"(I2,1x,I2,1x,I2)")hh,mm,ss!字符转换为write(*,*)hh,mm,ss!写出时、分、秒的整数值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内函数本章列出了f95编译器可识别的内函数名称。2.1标准Fortran95的通用内函数本节中介绍的Fortran95通用内函数按其在Fortran95标准中的功能进行分组。所示参数是在采用关键字形式时可以用作参数关键字的名称,如cmplx(Y=B,KIND=
5、M,X=A)中所示。有关这些通用内过程的详细说明,请查阅Fortran95标准。2.1.1参数存在查询函数通用内函数名说明PRESENT存在参数2.1.2数值函数通用内函数名说明ABS(A)绝对值AIMAG(Z)复数的虚部AINT(A[,KIND])整数截尾ANINT(A[,KIND])最近的整数CEILING(A[,KIND])大于或等于数值的最小整数CMPLX(X[,Y,KIND])转换为复数类型CONJG(Z)共轭复数DBLE(A)转换为双精度实数类型DIM(X,Y)正偏差DPROD(X,Y)双精度实数乘积FLOOR(A[,KIND])小于或等于
6、数值的最大整数INT(A[,KIND])转换为整数类型MAX(A1,A2[,A3,...])最大值MIN(A1,A2[,A3,...])最小值MOD(A,P)余数函数MODULO(A,P)模数函数NINT(A[,KIND])最近的整数REAL(A[,KIND])转换为实数类型SIGN(A,B)符号传输2.1.3数学函数通用内函数名说明ACOS(X)反余弦ASIN(X)反正弦ATAN(X)反正切ATAN2(Y,X)反正切COS(X)余弦COSH(X)双曲余弦EXP(X)指数LOG(X)自然对数LOG10(X)常用对数(10为基数)SIN(X)正弦SINH
7、(X)双曲正弦SQRT(X)平方根TAN(X)正切TANH(X)双曲正切2.1.4字符函数通用内函数名说明ACHAR(I)按ASCII整理序列排列时给定位置的字符ADJUSTL(STRING)齐左调整ADJUSTR(STRING)齐右调整CHAR(I[,KIND])按处理器整理序列排列时给定位置的字符IACHAR(C)按ASCII整理序列排列时字符的位置ICHAR(C)按处理器整理序列排列时字符的位置INDEX(STRING,SUBSTRING[,BACK])子串的起始位置LEN_TRIM(STRING)长度不包含结尾的空白字符LGE(STRING_A
8、,STRING_B)词法上大于或等于LGT(STRING_A,STRING_B)词法上大于LL