specifics.f90
来自「Mac OS X 10.4.9 for x86 Source Code gcc」· F90 代码 · 共 135 行
F90
135 行
! Program to test intrinsic functions as actual argumentssubroutine test_r(fn, val, res) real fn real val, res if (diff(fn(val), res)) call abortcontainsfunction diff(a, b) real a, b logical diff diff = (abs(a - b) .gt. 0.00001)end functionend subroutinesubroutine test_d(fn, val, res) double precision fn double precision val, res if (diff(fn(val), res)) call abortcontainsfunction diff(a, b) double precision a, b logical diff diff = (abs(a - b) .gt. 0.00001d0)end functionend subroutinesubroutine test_r2(fn, val1, val2, res) real fn real val1, val2, res if (diff(fn(val1, val2), res)) call abortcontainsfunction diff(a, b) real a, b logical diff diff = (abs(a - b) .gt. 0.00001)end functionend subroutinesubroutine test_d2(fn, val1, val2, res) double precision fn double precision val1, val2, res if (diff(fn(val1, val2), res)) call abortcontainsfunction diff(a, b) double precision a, b logical diff diff = (abs(a - b) .gt. 0.00001d0)end functionend subroutinesubroutine test_dprod(fn) double precision fn if (abs (fn (2.0, 3.0) - 6d0) .gt. 0.00001) call abortend subroutineprogram specifics intrinsic abs intrinsic aint intrinsic anint intrinsic acos intrinsic asin intrinsic atan intrinsic cos intrinsic sin intrinsic tan intrinsic cosh intrinsic sinh intrinsic tanh intrinsic alog intrinsic exp intrinsic sign intrinsic amod intrinsic dabs intrinsic dint intrinsic dnint intrinsic dacos intrinsic dasin intrinsic datan intrinsic dcos intrinsic dsin intrinsic dtan intrinsic dcosh intrinsic dsinh intrinsic dtanh intrinsic dlog intrinsic dexp intrinsic dsign intrinsic dmod intrinsic dprod !TODO: Also test complex variants call test_r (abs, -1.0, abs(-1.0)) call test_r (aint, 1.7, 1.0) call test_r (anint, 1.7, 2.0) call test_r (acos, 0.5, acos(0.5)) call test_r (asin, 0.5, asin(0.5)) call test_r (atan, 0.5, atan(0.5)) call test_r (cos, 1.0, cos(1.0)) call test_r (sin, 1.0, sin(1.0)) call test_r (tan, 1.0, tan(1.0)) call test_r (cosh, 1.0, cosh(1.0)) call test_r (sinh, 1.0, sinh(1.0)) call test_r (tanh, 1.0, tanh(1.0)) call test_r (alog, 2.0, alog(2.0)) call test_r (exp, 1.0, exp(1.0)) call test_r2 (sign, 1.0, -2.0, sign(1.0, -2.0)) call test_r2 (amod, 3.5, 2.0, amod(3.5, 2.0)) call test_d (dabs, -1d0, abs(-1d0)) call test_d (dint, 1.7d0, 1d0) call test_d (dnint, 1.7d0, 2d0) call test_d (dacos, 0.5d0, dacos(0.5d0)) call test_d (dasin, 0.5d0, dasin(0.5d0)) call test_d (datan, 0.5d0, datan(0.5d0)) call test_d (dcos, 1d0, dcos(1d0)) call test_d (dsin, 1d0, dsin(1d0)) call test_d (dtan, 1d0, dtan(1d0)) call test_d (dcosh, 1d0, dcosh(1d0)) call test_d (dsinh, 1d0, dsinh(1d0)) call test_d (dtanh, 1d0, dtanh(1d0)) call test_d (dlog, 2d0, dlog(2d0)) call test_d (dexp, 1d0, dexp(1d0)) call test_d2 (dsign, 1d0, -2d0, sign(1d0, -2d0)) call test_d2 (dmod, 3.5d0, 2d0, dmod(3.5d0, 2d0)) call test_dprod(dprod)end program
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?