|
程序定义的变量是单精度,但是想提高计算精度。我把变量都定义成为REAL(KIND=8)之后,程序报实参与虚参不匹配,所以困惑了。给位大大,帮帮忙改下呗,谢谢谢谢!
[Fortran] 纯文本查看 复制代码 025 | Q = Iop * * 2 * y * ( EXP ( -2.0 * y * t 1 / 2.0 ) - EXP ( -2.0 * y * t 2 / 2.0 ) ) & |
030 | CALL CNB 3 SN ( T , B , CNBSN ) |
032 | CALL DIANZULV ( T , B , RRR , RES ) |
033 | CAV = ( CCU * ACU + CNBSN * ASC ) / ( ACU + ASC ) |
040 | SUBROUTINE CNB 3 SN ( T , B , CNBSN ) |
045 | IF ( T > 0.0 .AND. T < 10.4 ) THEN |
047 | b 3 = 38.8 -1.8 * B +0.0634 * B * * 2 |
048 | b 2 = -110 * exp ( -0.434 * B ) |
049 | b 1 = 207.0 -3.83 * B +2.86 * B * * 2 |
052 | ELSEIF ( T > 10.4 .AND. T < 26.113 ) THEN |
058 | ELSEIF ( T >= 26.113 .AND. T < 169.416 ) THEN |
064 | ELSEIF ( T >= 169.416 .AND. T < 300.0 ) THEN |
077 | CNBSN = b 4 * ( T * * 4 ) + b 3 * ( T * * 3 ) + b 2 * ( T * * 2 ) + b 1 * T + b 0 |
080 | SUBROUTINE CCCU ( T , CCU ) |
082 | REAL a 0 , a 1 , a 2 , a 3 , a 4 , a 5 , a 6 , a 7 |
083 | REAL dens , aa 1 , aa 2 , aa 3 , aa 4 , aa |
094 | aa 1 = a 0 * ( ( log10 ( T ) ) * * 0.0 ) + a 1 * ( ( log10 ( T ) ) * * 1.0 ) |
095 | aa 2 = a 2 * ( ( log10 ( T ) ) * * 2.0 ) + a 3 * ( ( log10 ( T ) ) * * 3.0 ) |
096 | aa 3 = a 4 * ( ( log10 ( T ) ) * * 4.0 ) + a 5 * ( ( log10 ( T ) ) * * 5.0 ) |
097 | aa 4 = a 6 * ( ( log10 ( T ) ) * * 6.0 ) + a 7 * ( ( log10 ( T ) ) * * 7.0 ) |
100 | CCU = dens * ( 10.0 * * aa ) * 1.0 |
101 | WRITE ( * , * ) "CCU=" , CCU |
106 | SUBROUTINE DIANZULV ( T , B , RRR , RES ) |
107 | REAL RES 1 , RES 2 , RES 3 , RES |
109 | RES 2 = 1.0E-8 / ( 2.33 * 10 * * 9 / T * * 5 +9.57 * 10 * * 5 / T * * 3 +163.0 / T ) |
110 | RES 3 = ( 0.37E-10 +0.0005E-10 * RRR ) * B |
|
|