Professional Documents
Culture Documents
Program:
REAL SUM,I,N
INTEGER FACT
READ*,N
SUM = 1
FACT = 1
DO 100 I = 1,N
FACT = FACT*I
SUM = SUM + 1/FACT
100 CONTINUE
PRINT*,SUM
STOP
END
REAL A,B,C,D,X,FUNC
READ*,A,B,C,D,X
IF(X.GT.1) THEN
FUNC = A*X**3-B*X**2+C*X-D
ELSE IF(X.EQ.1) THEN
FUNC = 0
ELSE(X.LT.1) THEN
FUNC = -A*X**3+B*X**2-C*X+D
END IF
PRINT*,FUNC
STOP
END
Program:
#. Write a Fortran code to calculate the shear force and bending moment
at certain interval of the following beam under the given loading
condition:
Program:
REAL W,P,L,A,B,C,D,R1,R2,N,SF,BM
INTEGER I
PRINT*,'ENTER UDL'
READ*,W
PRINT*,'ENTER CONCENTRATED LOAD,P'
READ*,P
PRINT*,'ENTER A,B,C,D'
READ*,A,B,C,D
L=A+B+C+D
R1=(P*D+W*B*(B/2+C+D))/L
R2=W*B+P-R1
PRINT*,'LEFT REACTION,R1=',R1,'KIP'
PRINT*,'RIGHT REACTION,R2=',R2,'KIP'
PRINT*,'ENTER THE INTERVAL'
READ*,N
DO 10 I=0,L,N
IF(I.LE.A)THEN
SF=R1
BM=R1*I
ELSE IF(I.GT.A.AND.I.LE.(A+B))THEN
SF=R1-W*(I-A)
BM=R1*I-W*(I-A)**2/2
ELSE IF(I.GT.A+B.AND.I.LT.A+B+C)THEN
SF=R1-W*B
BM=R1*I-W*B*(I-A-B/2)
ELSE
SF=-R2
BM=-R2*(L-I)
END IF
PRINT*,'SHEAR FORCE AT',I,'(FT)',SF,'KIP'
PRINT*,'BENDING MOMENT AT',I,'(FT)',BM,'KIP-FT'
10 CONTINUE
STOP
END
Program:
INTEGER COND,NOD
REAL MOE,MOI,L,TLOAD,UDL,DEFLECTION,X,A,B,STEP,LAST,VARIABLE
PRINT*,'ENTER CONDITION NO'
READ*,COND
PRINT*,'ENTER NUMBER OF DIVISIONS AT WHICH DEFLECTIONS ARE FOUND'
READ*,NOD
PRINT*,'ENTER MODULUS OF ELASTICITY AND MOMENT OF INERTIA'
READ*,MOE,MOI
PRINT*,'ENTER LENGTH OF BEAM'
READ*,L
STEP=L/NOD
LAST=L
IF(COND.EQ.1)THEN
PRINT*,'ENTER TOTAL LOAD'
READ*,TLOAD
PRINT*,'DISTANCE DEFLECTION'
DO 20 X = 0,LAST,STEP
VARIABLE=X**3-3*L**2*X+2*L**3
DEFLECTION=(-TLOAD/(6*MOE*MOI))*VARIABLE
PRINT*,X,DEFLECTION
20 CONTINUE
ELSE IF(COND.EQ.2)THEN
PRINT*,'ENTER TOTAL LOAD AND DISTANCE A'
READ*,TLOAD,A
B = L-A
PRINT*,'DISTANCE DEFLECTION'
DO 30 X=0,LAST,STEP
IF(X.LT.B)THEN
VARIABLE=-A**3+3*A**2*L-3*A**2*X
ELSE
VARIABLE=(X-B)**3-3*A**2*(X-B)+2*A**3
ENDIF
DEFLECTION=(-TLOAD/(6*MOE*MOI))*VARIABLE
PRINT*,X,DEFLECTION
30 CONTINUE
ELSE
PRINT*,'ENTER UNIT LOAD'
READ*,UDL
TLOAD=UDL*L
PRINT*,'DISTANCE DEFLECTION'
DO 40 X=0,LAST,STEP
VARIABLE=X**4-4*L**3*X+3*L**4
DEFLECTION=(-TLOAD/(24*MOE*MOI*L))*VARIABLE
PRINT*,X,DEFLECTION
40 CONTINUE
END IF
STOP
END
Program:
PARAMETER (MAXROW=100,MAXCOL=100)
C
DIMENSION MATRX1(MAXROW,MAXCOL),MATRX2(MAXROW,MAXCOL)
DIMENSION SUM(MAXROW,MAXCOL), SUBT(MAXROW,MAXCOL)
C
REAL MATRX1,MATRX2,SUM,SUBT
INTEGER ROWS1,COLS1,ROWS2,COLS2
C
10 PRINT*, 'DIMENSIONS OF MATRIX 1'
READ*, ROWS1,COLS1
PRINT*, 'DIMENSIONS OF MATRIX 2'
READ*, ROWS2,COLS2
C
IF (ROWS1.GT.MAXROW .OR. COLS1.GT.MAXCOL) THEN
PRINT*,'MATRIX 1 TOO BIG '
GO TO 10
ENDIF
C
IF (ROWS2.GT.MAXROW .OR. COLS2.GT.MAXCOL) THEN
PRINT*,'MATRIX 2 TOO BIG '
GO TO 10
ENDIF
C
PRINT*,'ENTER ROW-WISE ELEMENTS OF MATRIX 1'
DO 20 I=1,ROWS1
DO 30 J=1,COLS1
READ*,MATRX1(I,J)
30 CONTINUE
20 CONTINUE
C
PRINT*,'ENTER ROW-WISE ELEMENT OF MATRIX 2'
DO 40 I=1,ROWS2
DO 50 J=1,COLS2
READ*,MATRX2(I,J)
50 CONTINUE
40 CONTINUE
C
DO 100 I=1,ROWS1
DO 110 J=1,COLS1
SUM(I,J)=MATRX1(I,J)+MATRX2(I,J)
SUBT(I,J)=MATRX1(I,J)-MATRX2(I,J)
110 CONTINUE
100 CONTINUE
PRINT*,'SUMMATION OF TWO MATRIX'
C
DO 120 I=1,ROWS1
PRINT*,(SUM(I,J),J=1,COLS1)
120 CONTINUE
C
PRINT*,'SUBTRACTION OF TWO MATRIX:'
DO 60 I =1,ROWS1
PRINT*,(SUBT(I,J),J=1,COLS1)
60 CONTINUE
STOP
END
Program:
PARAMETER (MAXROW=100,MAXCOL=100)
C
DIMENSION MATRX1(MAXROW,MAXCOL),MATRX2(MAXROW,MAXCOL)
DIMENSION PROD(MAXROW,MAXCOL)
C
REAL MATRX1,MATRX2,PROD
INTEGER ROWS1,COLS1,ROWS2,COLS2
C
10 PRINT*, 'DIMENSIONS OF MATRIX 1'
READ*, ROWS1,COLS1
PRINT*, 'DIMENSIONS OF MATRIX 2'
READ*, ROWS2,COLS2
C
IF (COLS1.NE.ROWS2) THEN
PRINT*,'MATRIX MULTIPLICATION IS NOT POSSIBLE '
GO TO 10
ENDIF
C
IF (ROWS1.GT.MAXROW .OR. COLS1.GT.MAXCOL) THEN
PRINT*,'MATRIX 1 TOO BIG '
GO TO 10
ENDIF
C
IF (ROWS2.GT.MAXROW .OR. COLS2.GT.MAXCOL) THEN
PRINT*,'MATRIX 2 TOO BIG '
GO TO 10
ENDIF
C
PRINT*,'ENTER ROW-WISE ELEMENTS OF MATRIX 1'
DO 20 I=1,ROWS1
DO 30 J=1,COLS1
READ*,MATRX1(I,J)
30 CONTINUE
20 CONTINUE
C
PRINT*,'ENTER ROW-WISE ELEMENTS OF MATRIX 2'
DO 40 I=1,ROWS2
DO 50 J=1,COLS2
READ*,MATRX2(I,J)
50 CONTINUE
40 CONTINUE
C
DO 60 I=1,ROWS1
DO 70 J=1,COLS2
PROD(I,J)=0.0
DO 80 K=1, COLS1
PROD(I,J)=PROD(I,J)+MATRX1(I,K)*MATRX2(K,J)
80 CONTINUE
70 CONTINUE
60 CONTINUE
C
PRINT*,'PRODUCT OF TWO MATRICES'
DO 90 I =1,ROWS1
PRINT*,(PROD(I,J),J=1,COLS2)
90 CONTINUE
C
STOP
END
Program:
DIMENSION A(20,21),X(20)
INTEGER N,K,I,J
PRINT*,'ENTER VALUE OF N'
READ*,N
PRINT*,'ENTER THE ELEMENTS ROW WISE'
READ*,((A(I,J),J=1,N+1),I=1,N)
DO 10 K = 1,N-1
T = A(K,K)
IF(T.EQ.0) STOP 'ZERO DIVISION,RETRY'
DO 10 I = K+1,N
U = A(I,K)/T
DO 10 J = K,N+1
A(I,J) = A(I,J)-U*A(K,J)
10 CONTINUE
X(N) = A(N,N+1)/A(N,N)
DO 14 I = N-1,1,-1
SUM = 0.0
DO 13 J= I+1,N
SUM = SUM + A(I,J)*X(J)
13 CONTINUE
X(I) = (A(I,N+1)-SUM)/A(I,I)
14 CONTINUE
PRINT*,'SOLUTION OF THE EQUATION IS'
DO 16 I = 1,N
PRINT*,I,X(I)
16 CONTINUE
STOP
END
DIMENSION A(20,21),X(20)
INTEGER N,K,I,J
PRINT*,'ENTER VALUE OF N'
READ*,N
PRINT*,'ENTER THE ELEMENTS ROW WISE'
READ*,((A(I,J),J=1,N+1),I=1,N)
DO 10 K = 1,N
P = A(K,K)
IF(P.EQ.0) STOP 'ZERO DIVISION,RETRY'
DO 20 J = K,N+1
A(K,J) = A(K,J)/P
20 CONTINUE
DO 30 I = 1,N
IF(I.NE.K) THEN
C = A(I,K)
DO 40 J = K,N+1
A(I,J) = A(I,J)-C*A(K,J)
40 CONTINUE
END IF
30 CONTINUE
10 CONTINUE
DO 50 I = 1,N
X(I) = A(I,N+1)
50 CONTINUE
PRINT*,'SOLUTION OF THE EQUATIONS IS'
DO 100 I = 1,N
PRINT*,I,X(I)
100 CONTINUE
STOP
END
Program:
DIMENSION X(20),Y(20),D(20,20)
INTEGER FACT,N
PRINT*,'ENTER NUMBER OF POINTS'
READ*,N
PRINT*,'ENTER', N ,'SETS OF POINTS AS (X,Y)'
READ*,(X(I),Y(I),I = 1,N)
PRINT*,'VALUE OF X FOR INTERPOLATION'
READ*,A
IF((A.LT.X(1)).OR.(A.GT.X(N))) THEN
STOP 'VALUE LIES OUTSIDE RANGE'
END IF
DO 10 I = 2,N
IF(X(I).GT.A) GO TO 20
10 CONTINUE
20 K = I-1
CALL FORDIFF(Y,D,N)
U = (A-X(K))/(X(K+1)-X(K))
S = Y(K)
DO 50 I = 1,N-K
P = 1.0
DO 60 J = 0,I-1
P = P*(U-J)
60 CONTINUE
FACT = 1
DO 100 L = 2,I-1
FACT = FACT*L
100 CONTINUE
S = S+D(K,I)*P/FACT
50 CONTINUE
PRINT*,S,A
STOP
END
SUBROUTINE FORDIFF(Y,D,N)
DIMENSION Y(N),D(N,N)
INTEGER N
DO 30 J = 1,N-1
DO 30 I = 1,N-J
IF(J.LT.2) THEN
D(I,J) = Y(I+1)-Y(I)
ELSE
D(I,J) = D(I+1,J-1) - D(I,J-1)
END IF
30 CONTINUE
RETURN
END