程序执行过程中并没有给I,J赋值,为什么提示超出范围?
[Fortran] 纯文本查看 复制代码 002 | INTEGER NO , NJ , N , NE , NM , NPJ , NPF , I , J , IE , IP , KK , I 1 |
003 | REAL K ( 200 , 200 ) , KE ( 6 , 6 ) , AKE ( 6 , 6 ) , X ( 100 ) , Y ( 100 ) , AL ( 100 ) , EAI ( 3 , 100 ) , PJ ( 100 ) , PF ( 2 , 100 ) , R ( 6 , 6 ) , P ( 100 ) , FF ( 6 ) , FE ( 6 ) , ADE ( 6 ) , DE ( 6 ) , RT ( 6 , 6 ) , AFE ( 6 ) , F ( 3 ) , D ( 100 ) |
004 | INTEGER JE ( 2 , 100 ) , JN ( 3 , 100 ) , JPJ ( 100 ) , JPF ( 2 , 100 ) , M ( 6 ) , JEAI ( 100 ) |
006 | 1 OPEN ( 6 , FILE = 'PFSAP.IN' ) |
007 | OPEN ( 8 , FILE = 'PFSAP.OUT' ) |
010 | WRITE ( 8 , "('(NO.='I3,')'/)" ) NO |
019 | CALL MKE ( KE , IE , JE , JEAI , EAI , X , Y , AL ) |
022 | CALL CALM ( M , IE , JN , JE ) |
026 | CALL MR ( R , JPF ( 1 , IP ) , JE , X , Y ) |
028 | CALL PE ( FE , IP , JPF , PF , AL ) |
029 | CALL MULV 6 ( RT , FE , AFE ) |
030 | CALL CALM ( M , JPF ( 1 , IP ) , JN , JE ) |
034 | P ( JPJ ( I ) ) = P ( JPJ ( I ) ) + PJ ( I ) |
037 | WRITE ( 8 , * ) "/10X,5('* *'),'RESULTS OF CALCULATION',5('* *')" |
039 | 40 FORMAT ( / 5 X , 'NO.N' , 4 X , 'X-DISPLACEMENT' , 2 X , 'Y-DISPLEMENT' , 3 X , 'ANG.ROT.(RAD)' ) |
044 | IF ( I 1 .GT. 0 ) F ( I ) = D ( I 1 ) |
046 | WRITE ( 8 , 70 ) KK , F ( 1 ) , F ( 2 ) , F ( 3 ) |
047 | 70 FORMAT ( I 8 , 2 X , 3 G 16.5 ) |
050 | 80 FORMAT ( / 'NO.E' , 5 X , 'N(1)' , 8 X , 'Q(1)' , 8 X , 'M(1)' , 8 X , 'N(2)' , 8 X , 'Q(2)' , 8 X , 'M(2)' ) |
052 | CALL MADE ( IE , JN , JE , D , ADE ) |
053 | CALL MKE ( KE , IE , JE , JEAI , EAI , X , Y , AL ) |
058 | IF ( JPF ( 1 , IP ) .EQ. IE ) THEN |
059 | CALL PE ( FE , IP , JPF , PF , AL ) |
065 | WRITE ( 8 , 110 ) IE , ( FF ( I ) , I = 1 , 6 ) |
066 | 110 FORMAT ( I 5 , 2 X , 6 G 12.5 ) |
070 | SUBROUTINE PUTIN ( NJ , N , NE , NM , NPJ , NPF , JN , X , Y , JE , JEAI , EAI , JPJ , PJ , JPF , PF ) |
071 | REAL X ( 100 ) , Y ( 100 ) , EAI ( 3 , 100 ) , PJ ( 100 ) , PF ( 2 , 100 ) |
072 | INTEGER JE ( 2 , 100 ) , JN ( 3 , 100 ) , JPJ ( 100 ) , JPF ( 2 , 100 ) , JEAI ( 100 ) |
076 | READ ( 6 , * ) NJ , N , NE , NM , NPJ , NPF |
077 | WRITE ( 8 , 3 ) NJ , N , NE , NM , NPJ , NPF |
078 | 3 FORMAT ( 'NJ=' I 2 , 5 X , 'N=' I 2 , 5 X , 'NE=' I 2 , 5 X , 'NM=' I 2 , 5 X , 'NPJ=' I 2 , 5 X , 'NPF=' I 2 ) |
080 | 5 FORMAT ( / 3 X , 'NO. (1) (2) (3)' , 10 X , 'X' , 8 X , 'Y' ) |
081 | READ ( 6 , 10 ) ( ( JN ( J , I ) , J = 1 , 3 ) , X ( I ) , Y ( I ) , I = 1 , NJ ) |
082 | 10 FORMAT ( 2 ( 3 I 5 , 2 G 16.4 ) ) |
083 | WRITE ( 8 , 11 ) ( I , ( JN ( J , I ) , J = 1 , 3 ) , X ( I ) , Y ( I ) , I = 1 , NJ ) |
084 | 11 FORMAT ( 2 X , I 2 , 3 I 5 , 4 X , 2 F 10.3 ) |
086 | 30 FORMAT ( / 10 X , 'ELEMENT NO. NODE-1 NODE-2 MATERIALS' ) |
087 | READ ( 6 , 40 ) ( JE ( 1 , I ) , JE ( 2 , I ) , JEAI ( I ) , I = 1 , NE ) |
090 | WRITE ( 8 , '(14X,I2,3(7X,I3))' ) I , JE ( 1 , I ) , JE ( 2 , I ) , JEAI ( I ) |
092 | READ ( 6 , * ) ( ( EAI ( I , J ) , I = 1 , 3 ) , J = 1 , NM ) |
093 | WRITE ( 8 , 60 ) ( J , ( EAI ( I , J ) , I = 1 , 3 ) , J = 1 , NM ) |
094 | 60 FORMAT ( / 3 X , 'NO.MAT' , 3 X , 'ELASTIK MOUDULUS' , 5 X , 'AREA' , 5 X , 'MOMENT OF INERTIA' / ( I 6 , 3 G 16.6 ) ) |
097 | 15 FORMAT ( / 20 X , 'NODEL LOADS' ) |
099 | 12 FORMAT ( / 16 X , 'NO.DISP. VALUE' ) |
100 | READ ( 6 , 70 ) ( JPJ ( I ) , PJ ( I ) , I = 1 , NPJ ) |
101 | 70 FORMAT ( 5 ( I 5 , G 16.4 ) ) |
103 | WRITE ( 8 , '(14X,I7,F16.3)' ) JPJ ( I ) , PJ ( I ) |
109 | 13 FORMAT ( / 20 X , 'NON-NODEL LOADS' ) |
111 | 14 FORMAT ( 11 X , 'NO.E NO.LOAD.MODEL' , 8 X , 'A' , 9 X , 'C' ) |
112 | READ ( 6 , 100 ) ( JPF ( 1 , I ) , JPF ( 2 , I ) , PF ( 1 , I ) , PF ( 2 , I ) , I = 1 , NPF ) |
113 | 100 FORMAT ( 2 ( 2 I 5 , 2 G 16.4 ) ) |
115 | WRITE ( 8 , 120 ) ( JPF ( J , I ) , J = 1 , 2 ) , PF ( 1 , I ) , PF ( 2 , I ) |
116 | 120 FORMAT ( 6 X , 2 I 8 , 10 X , 2 F 10.3 ) |
122 | SUBROUTINE MKE ( KE , IE , JE , JEAI , EAI , X , Y , AL ) |
125 | REAL KE ( 6 , 6 ) , X ( 100 ) , Y ( 100 ) , EAI ( 3 , 100 ) , AL ( 100 ) |
126 | INTEGER JE ( 2 , 100 ) , JEAI ( 100 ) |
130 | L = SQRT ( ( X ( JJ ) - X ( II ) ) * * 2 + ( Y ( JJ ) - Y ( II ) ) * * 2 ) |
132 | A 1 = EAI ( 1 , MT ) * EAI ( 2 , MT ) / L |
133 | A 2 = EAI ( 1 , MT ) * EAI ( 3 , MT ) / L * * 3 |
134 | A 3 = EAI ( I , MT ) * EAI ( 3 , MT ) / L * * 2 |
135 | A 4 = EAI ( 1 , MT ) * EAI ( 3 , MT ) / L |
156 | SUBROUTINE MR ( R , IE , JE , X , Y ) |
160 | REAL R ( 6 , 6 ) , X ( 100 ) , Y ( 100 ) |
163 | L = SQRT ( ( X ( J ) - X ( I ) ) * * 2 + ( Y ( J ) - Y ( I ) ) * * 2 ) |
180 | SUBROUTINE MAKE ( KE , R , AKE ) |
181 | REAL KE ( 6 , 6 ) , R ( 6 , 6 ) , RT ( 6 , 6 ) , TMP ( 6 , 6 ) , AKE ( 6 , 6 ) |
187 | SUBROUTINE CALM ( M , IE , JN , JE ) |
189 | INTEGER M ( 6 ) , JN ( 3 , 100 ) , JE ( 2 , 100 ) |
192 | M ( I +3 ) = JN ( I , JE ( 2 , IE ) ) |
196 | SUBROUTINE MK ( K , AKE , M ) |
198 | REAL K ( 200 , 200 ) , AKE ( 6 , 6 ) |
202 | IF ( M ( I ) .NE. 0 .AND. M ( J ) .NE. 0 ) K ( M ( I ) , M ( J ) ) = K ( M ( I ) , M ( J ) ) + AKE ( I , J ) |
207 | SUBROUTINE PE ( FE , IP , JPF , PF , AL ) |
211 | REAL FE ( 6 ) , PF ( 2 , 100 ) , AL ( 100 ) |
221 | FE ( 2 ) = ( 7.0 * A / 20.0 +3.0 * C / 20.0 ) * L |
222 | FE ( 3 ) = ( A / 20.0 + C / 30.0 ) * L * * 2 |
223 | FE ( 5 ) = ( 3.0 * A / 20.0 +7.0 * C / 20.0 ) * L |
224 | FE ( 6 ) = - ( A / 30.0 + C / 20.0 ) * L * * 2 |
227 | FE ( 5 ) = A * C * * 3 * ( 2 * L - C ) / ( 2 * L * * 3 ) |
228 | FE ( 6 ) = - A * C * * 3 * ( 4.0 * L -3.0 * C ) / ( 12.0 * L * * 2 ) |
230 | FE ( 3 ) = A * C * * 2 * ( 6.0 * L * * 2 -8.0 * C * L +3.0 * C * * 2 ) / ( 12.0 * L * * 2 ) |
233 | FE ( 2 ) = A * ( L - C ) * * 2 * ( L +2 * C ) / L * * 3 |
234 | FE ( 3 ) = A * C * ( L - C ) * * 2 / L * * 2 |
236 | FE ( 6 ) = - A * C * * 2 * ( L - C ) / L * * 2 |
239 | FE ( 2 ) = -6.0 * A * C * ( L - C ) / L * * 3 |
240 | FE ( 3 ) = A * ( L - C ) * ( L -3.0 * C ) / L * * 2 |
242 | FE ( 6 ) = A * C * ( 3.0 * C -2.0 * L ) / L * * 2 |
252 | SUBROUTINE MULV 6 ( A , B , C ) |
258 | C ( I ) = C ( I ) + A ( I , J ) * B ( J ) |
263 | SUBROUTINE MF ( P , AFE , M ) |
268 | IF ( M ( I ) .NE. 0 ) P ( M ( I ) ) = AFE ( I ) + P ( M ( I ) ) |
272 | SUBROUTINE SLOV ( K , P , D , N ) |
274 | REAL K ( 200 , 200 ) , P ( 100 ) , D ( 100 ) |
282 | K ( I , J ) = K ( I , J ) + C * K ( KK , J ) |
290 | D ( I ) = D ( I ) - K ( I , J ) * D ( J ) |
296 | SUBROUTINE MADE ( IE , JN , JE , D , ADE ) |
299 | INTEGER IE , JN ( 3 , 100 ) , JE ( 2 , 100 ) |
304 | IF ( JN ( I , JE ( 1 , IE ) ) .NE. 0 ) ADE ( I ) = D ( JN ( I , JE ( 1 , IE ) ) ) |
305 | IF ( JN ( I , JE ( 2 , IE ) ) .NE. 0 ) ADE ( I +3 ) = D ( JN ( I , JE ( 2 , IE ) ) ) |
319 | SUBROUTINE MULV ( A , B , C ) |
321 | REAL A ( 6 , 6 ) , B ( 6 , 6 ) , C ( 6 , 6 ) |
326 | C ( I , J ) = C ( I , J ) + A ( I , K ) * B ( K , J ) |
|