|
1F 币
本帖最后由 hcj 于 2018-11-9 09:09 编辑
[Fortran] 纯文本查看 复制代码 003 | DOUBLE PRECISION D , e , D 1 |
013 | DOUBLE PRECISION D , F 5 , G 5 , e |
022 | DOUBLE PRECISION F 5 , IS , IC , b , e |
023 | F 5 = ( 1 / 3.1415926 ) * ( COS ( b * ( e - IC ( b ) ) ) ) * EXP ( -1 * b * IS ( b ) ) |
030 | DOUBLE PRECISION IS , F 4 , G 4 , b |
039 | DOUBLE PRECISION F 4 , N , V 1 , b |
047 | DOUBLE PRECISION IC , F 3 , G 3 , b |
056 | DOUBLE PRECISION F 3 , b , V 1 |
064 | DOUBLE PRECISION N , V 1 , F 1 , F 2 , V |
072 | DOUBLE PRECISION F 2 , V 1 , F , A , B , G 1 |
076 | CALL FLAGS 1 ( A , B , F , EPS , G 1 ) |
084 | DOUBLE PRECISION F 1 , F , G , V |
093 | F = ( 3 / ( 2 * 3.1415926 * V ) ) * LOG ( ( COSH ( SQRT ( 1 / ( 2 * V ) ) ) * * 2 - |
094 | * COS ( SQRT ( 1 / ( 2 * V ) ) ) * * 2 ) / ( 2 * V ) ) |
099 | SUBROUTINE FLAGS ( F , G ) |
101 | DOUBLE PRECISION F , G , T , C , X |
102 | DATA C / 0.6790941054 , 1.638487956 , 2.769426772 , |
103 | * 4.31594400 , 7.104896230 / |
104 | DATA T / 0.26355990 , 1.41340290 , 3.59642600 , |
105 | * 7.08580990 , 12.64080000 / |
116 | SUBROUTINE FLAGS 1 ( A , B , F , EPS , G ) |
118 | DOUBLE PRECISION A , B , F , G , T , C , S , P , H , AA , BB , W , X , Q |
119 | DATA T / -0.061798459 , -0.5384693101 , 0.0 , |
120 | * 0.5384693101 , 0.9061798459 / |
121 | DATA C / 0.2369268851 , 0.4786286705 , 0.5688888889 , |
122 | * 0.4786286705 , 0.2369268851 / |
133 | X = ( ( BB - AA ) * T ( J ) + ( BB + AA ) ) / 2.0 |
139 | Q = ABS ( G - P ) / ( 1.0 + ABS ( G ) ) |
140 | IF ( ( Q .GE. EPS ) .AND. ( ABS ( H ) .GT. ABS ( S ) ) ) THEN |
149 | SUBROUTINE FLAGS 2 ( F , G , b ) |
151 | DOUBLE PRECISION F , G , T , C , X , b |
152 | DATA C / 0.6790941054 , 1.638487956 , 2.769426772 , |
153 | * 4.31594400 , 7.104896230 / |
154 | DATA T / 0.26355990 , 1.41340290 , 3.59642600 , |
155 | * 7.08580990 , 12.64080000 / |
带着未知量积分,把未知量一直顺延下去,在最后的一个积分里积掉,剩余一个未知量。然后做一个do循环。
这个方法为什么无法计算。与已知数据无法拟合
|
最佳答案
查看完整内容
1. 我建议你换一本教科书。
都什么年代了,还用这么古老的代码风格,真是痛心。
放弃固定格式吧,放弃全部大写吧,放弃DATA语句吧,放弃 DO 数字 CONTINUE 吧
老代码尚且可以忍受,自己书写代码,为什么还要用这种古老的风格呢??
2. 一定要书写 Implicit None,否则你出错了自己都不知道。比如 F3 函数里,你忘了定义 N 是 double,编译器误以为是 integer,结果就出现不可预料的后果。
3. 你的问题结果非常大,double 已经不 ...
|