|
[Fortran] 纯文本查看 复制代码 005 | interface K_getEquStress |
006 | module procedure K_getEquStress_dp ; |
007 | module procedure K_getEquStress_sp ; |
010 | interface K_getDelF_DelSigma |
011 | module procedure K_getDelF_DelSigma_dp ; |
012 | module procedure K_getDelF_DelSigma_sp ; |
015 | interface K_getDelF_DelSigma_fast |
016 | module procedure K_getDelF_DelSigma_fast_dp ; |
017 | module procedure K_getDelF_DelSigma_fast_sp ; |
029 | real ( 8 ) function K_getP ( param_r 0 , param_r 45 , param_r 90 ) |
032 | real ( 8 ) :: param_r 45 ; |
033 | real ( 8 ) :: param_r 90 ; |
037 | dimension K_getP ( 3 , 3 ) ; |
039 | P 12 = param_r 0 / ( 1 .d 0 + param_r 90 ) ; |
040 | P 22 = param_r 0 * ( 1 .d 0 + param_r 90 ) / ( param_r 90 |
041 | & * ( 1 .d 0 + param_r 0 ) ) ; |
042 | P 66 = ( 1 .d 0 +2 .d 0 * param_r 45 ) * ( param_r 0 + param_r 90 ) |
043 | & / ( ( param_r 0 + 1 .d 0 ) * param_r 90 ) ; |
045 | K_getP = reshape ( ( / 1 .d 0 , - P 12 , 0 d 0 , |
058 | real ( 8 ) function K_getEquStress_dp ( param_r 0 , param_r 45 , param_r 90 |
062 | real ( 8 ) :: param_r 45 ; |
063 | real ( 8 ) :: param_r 90 ; |
065 | real ( 8 ) :: Stress_T ( 1 , 3 ) ; |
066 | real ( 8 ) :: Stress_V ( 3 , 1 ) ; |
067 | real ( 8 ) :: Stress ( 3 ) ; |
068 | real ( 8 ) :: temp 1 ( 1 , 3 ) ; |
071 | P = K_getP ( param_r 0 , param_r 45 , param_r 90 ) ; |
072 | Stress_T = reshape ( ( / Stress ( 1 ) , Stress ( 2 ) , Stress ( 3 ) / ) |
074 | Stress_V = reshape ( ( / Stress ( 1 ) , Stress ( 2 ) , Stress ( 3 ) / ) |
076 | temp 1 = matmul ( Stress_T , P ) ; |
077 | temp 2 = matmul ( temp 1 , Stress_V ) ; |
078 | K_getEquStress_dp = sqrt ( temp 2 / 2 .d 0 ) ; |
085 | real function K_getEquStress_sp ( param_r 0 _sp , param_r 45 _sp , |
086 | & param_r 90 _sp , Stress_sp ) |
089 | real :: param_r 45 _sp ; |
090 | real :: param_r 90 _sp ; |
091 | real :: Stress_sp ( 3 ) ; |
092 | real ( 8 ) :: Stress_dp ( 3 ) ; |
093 | real ( 8 ) :: equStress_dp ; |
094 | real ( 8 ) :: param_r 0 _dp ; |
095 | real ( 8 ) :: param_r 45 _dp ; |
096 | real ( 8 ) :: param_r 90 _dp ; |
098 | param_r 0 _dp = param_r 0 _sp ; |
099 | param_r 45 _dp = param_r 45 _sp ; |
100 | param_r 90 _dp = param_r 90 _sp ; |
101 | Stress_dp = Stress_sp ; |
102 | equStress_dp = K_getEquStress_dp ( param_r 0 _dp , param_r 45 _dp |
103 | & , param_r 90 _dp , Stress_dp ) ; |
104 | K_getEquStress_sp = equStress_dp ; |
110 | real ( 8 ) function K_getDelF_DelSigma_dp ( param_r 0 , param_r 45 , |
114 | real ( 8 ) :: param_r 45 ; |
115 | real ( 8 ) :: param_r 90 ; |
116 | real ( 8 ) :: Stress_V ( 3 , 1 ) ; |
117 | real ( 8 ) :: Stress ( 3 ) ; |
119 | real ( 8 ) :: equStress ; |
121 | dimension K_getDelF_DelSigma_dp ( 3 , 1 ) ; |
123 | P = K_getP ( param_r 0 , param_r 45 , param_r 90 ) ; |
124 | Stress_V = reshape ( ( / Stress ( 1 ) , Stress ( 2 ) , Stress ( 3 ) / ) |
126 | equStress = K_getEquStress_dp ( param_r 0 , param_r 45 , param_r 90 , |
128 | temp = 2 .d 0 * equStress ; |
129 | K_getDelF_DelSigma_dp = matmul ( P , Stress_V ) / temp ; |
135 | real function K_getDelF_DelSigma_sp ( param_r 0 _sp , param_r 45 _sp , |
136 | & param_r 90 _sp , Stress_sp ) |
139 | real :: param_r 45 _sp ; |
140 | real :: param_r 90 _sp ; |
141 | real :: Stress_sp ( 3 ) ; |
142 | real ( 8 ) :: Stress_dp ( 3 ) ; |
143 | real ( 8 ) :: param_r 0 _dp ; |
144 | real ( 8 ) :: param_r 45 _dp ; |
145 | real ( 8 ) :: param_r 90 _dp ; |
146 | real ( 8 ) :: DelF_DelSigma_dp ( 3 , 1 ) ; |
147 | dimension K_getDelF_DelSigma_sp ( 3 , 1 ) ; |
148 | param_r 0 _dp = param_r 0 _sp ; |
149 | param_r 45 _dp = param_r 45 _sp ; |
150 | param_r 90 _dp = param_r 90 _sp ; |
152 | Stress_dp = Stress_sp ; |
154 | DelF_DelSigma_dp = K_getDelF_DelSigma_dp ( param_r 0 _dp , |
155 | & param_r 45 _dp , param_r 90 _dp , Stress_dp ) ; |
156 | K_getDelF_DelSigma_sp = DelF_DelSigma_dp ; |
164 | real ( 8 ) function K_getDelF_DelSigma_fast_dp ( param_r 0 , param_r 45 , |
165 | & param_r 90 , Stress , equStress ) |
168 | real ( 8 ) :: param_r 45 ; |
169 | real ( 8 ) :: param_r 90 ; |
170 | real ( 8 ) :: Stress_V ( 3 , 1 ) ; |
171 | real ( 8 ) :: Stress ( 3 ) ; |
173 | real ( 8 ) :: equStress ; |
175 | dimension K_getDelF_DelSigma_fast_dp ( 3 , 1 ) ; |
177 | P = K_getP ( param_r 0 , param_r 45 , param_r 90 ) ; |
178 | Stress_V = reshape ( ( / Stress ( 1 ) , Stress ( 2 ) , Stress ( 3 ) / ) |
180 | temp = 2 .d 0 * equStress ; |
182 | K_getDelF_DelSigma_fast_dp = matmul ( P , Stress_V ) / temp ; |
190 | real function K_getDelF_DelSigma_fast_sp ( param_r 0 _sp , |
191 | & param_r 45 _sp , param_r 90 _sp , Stress_sp , equStress_sp ) |
194 | real :: param_r 45 _sp ; |
195 | real :: param_r 90 _sp ; |
196 | real :: Stress_sp ( 3 ) ; |
197 | real :: equStress_sp ; |
199 | real ( 8 ) :: Stress_dp ( 3 ) ; |
200 | real ( 8 ) :: param_r 0 _dp ; |
201 | real ( 8 ) :: param_r 45 _dp ; |
202 | real ( 8 ) :: param_r 90 _dp ; |
203 | real ( 8 ) :: equStress_dp ; |
204 | real ( 8 ) :: DelF_DelSigma_dp ( 3 , 1 ) ; |
205 | dimension K_getDelF_DelSigma_fast_sp ( 3 , 1 ) ; |
206 | param_r 0 _dp = param_r 0 _sp ; |
207 | param_r 45 _dp = param_r 45 _sp ; |
208 | param_r 90 _dp = param_r 90 _sp ; |
209 | Stress_dp = Stress_sp ; |
210 | equStress_dp = equStress_sp ; |
212 | DelF_DelSigma_dp = K_getDelF_DelSigma_fast_dp ( param_r 0 _dp , |
213 | & param_r 45 _dp , param_r 90 _dp , Stress_dp , equStress_dp ) ; |
214 | K_getDelF_DelSigma_fast_sp = DelF_DelSigma_dp ; |
221 | end module K_Hill 48 Module |
错误 1 error #6366: The shapes of the array expressions do not conform. [TEMP2] 求问大神们,在算等效应力时temp2为什么会出错呢
|
|