Главная страница сайта  Российские промышленные издания (узловые агрегаты) 

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 [ 85 ] 86 87 88

г) Блок-схема подпрограммы SOLV

Начало

Начало иинла по степеням свободы

Заданы ли

перемещения ?

включение заданных значений

в вентор нагризни

-» Модификация рассматриваемого уробнения

Запоминание уравнения

Исключение уравнений в соответствии с (20.3)и (20.i)

((ересыпна полученных матриц нОЗад в исходное положение

Нонец цинпа по степеням свободы

Возврат в основную программу

д) Блок-схема подпрограммы BSUB

Начало

Начало цикла по всем уравнениям

Введение уравнения и граничных переменных \

Осуш,еотвление офютного хода

-л-\оть ли в уравнении заданные перемещения ?

Завись номера узяа и компоненты реакции

Подстановка вычисленных ипи заданных значений матрицу перемещений

Смещение известной матрицы перемещений на odiy позицию вниз

Конец цикла по уравнениям \

Запись матрицы перемещений

Возврат в основную проврамму



Обозначения переменных в подпрограммах 20-16 -~ 20-20

NBAND

Максимальная величина половины ширины

ленты

Число степеней свободы узла

Переменная для проверки граничных точек

Переменная для проверки заданных компонент

перемещений

Заданное значение

NCOLN

Количество столбцов нагрузки (векторов)

Массив жесткости

Массив нагрузок (перемещений)

Объем внешней памяти

Программа 20-16

SUBROUTINE INIT (NBAND.NCOLN) Контрольное счетчики

COMMON/BUFDA/NBD,NCOL,IS,NA,LRECL,NREC,L,X{8000)

Размеры X можно изменять

NA имеет тот же размер, что и X

NA = 8000 18=1

NBD = NBAND

NCOL = NCOLN

LRECL = NBD + NCOL + 3

NREC = 0

IF (LRECL-NA) 1,1,2 RETURN

WRITE(6,4) LRECL.NA 0 FORMAT (OLOGICAL RECORD LENGTH 0FM6,EXCEEDS BUFFER SET AT, 1 16) STOP ENDT

Программа 20-17

SUBROUTINE STORE (ST,P,NR,BN,BV) DIMENSION ST(60,60),P(60,2)

COMMON/BUFDA/NBD,NCOL,IS,NA,LRECL,NREC,L,X(8000)

Проверка возможности размещения во внешней памяти программы автоматического разбиения на элементы

1F(IS +LRECL-NA) 5,5,50 Место во внешней памяти

б DO 10 I = l.NBD X(IS) = ST(1,I)

10 IS = IS + 1

DO 15 I = l.NCOL X (IS) = P(1,I)

IS = IS+1 X(IS) = NR X(1S + 1) = BN X(IS + 2) = BV IS = IS + 3 RETURN

Нет места во внешней памяти

L = IS- 1

WRITE(2) (X(J),J = 1,L) Канал 2 внешней памяти

IS= 1

NREC = NREC + 1

GO TO 5

40 41

Программа 20-18

SUBROUTINE RDBK (ST,P,NR;BN,BV) DIMENSION ST(60,60),P(60,2)

COMMON/BUFDA/NBD,NCOL,IS,NA,LRECL,NREC,L,X(8000) Проверка нахождения следующей записи во внешней памяти

IS =18-LRECL IF(IS-I) 40,12,12

Запись находится во внешней памяти

12 DO 1! 1 = 1, NBD ST (1,I) = X(1S) IS = IS + 1 DO 15 1 = 1, NCOL P (1,I) = X(IS) IS = IS + 1 NR = X(IS) BN = X(IS + 1) BV = X(IS + 21 IS= IS+ 3-LRECL RETURN

Необходимо считывать последний записанный блок

IF (NREC) 100,100,41 NREC = NREC -1 BACKSPACE 2 READ (2) (X(J),J=!,L) BACKSPACE 2 IS=L + 1 GO TO 10



Нелогичная ошибка

100 WRITE (6,101)

10! FORMAT(0 ATTEMPT ТО READ BACK TOO MANY RECORDS.) STOP END

с с с с

Программа 20-19

SUBROUTINE SOLV

COMMON DIS(720,2),ST(60,60),Q(60,2),P(6a,2),PST(2),BN(2),BV(2) COMMON NDF,NBAND,NSIZ,NDFI,NP,NELEM,NCOLN,NDATA

NCOLN - число столбцов нагрузки NR = I - узлы с граничными условиями BN - 1 - закреплено, О - свободно BV - заданные перемещения NBAND - половина ширины ленты NDF - чисто степеней свободы

NDFI = NDF + 1,NSIZ = NBAND - NDF

DO 111 JJ= l.NDF

Проверка граничных условий

IF(NR.NE.l) GO TO 58

IF (ABS(BN(JJ)).LT..00O01) GO TO 58

ST!!=0

DO 5 J=!,NCOLN

5 PST(J) = BV(JJ) DO 8 J= 1,NCOLN

8 P(I,J) = -BV(JJ) + P(1,J)/ST(!,!)

DO 4 I = 2,NBAND: 4 ST(1,I) = ST(1,I)/ST(1,I)

ST(!.1) = -ST(1,1)

GO TO 60

Уравнение без граничных условий

58 STU = 1,/ST(!,1) DO 6 J= 1,NCOLN

6 PST(J) = P(!,J).ST!1 ST(!,1) = ST!1

60 CALL STORE (ST,P,NR,BN(JJ),BV(JJ))

DO 1! I=2,NBAND

DO 16 J= 1,NCOLN 16 P(I,J) = P(I,J)-ST(!,I).PST(J)

Составление модифицированной матрицы нагрузки

DO 1! J = 2,NBAND 11 ST(I,J) = ST(I,J) - ST(1,I).ST(1,J)«ST11

Составление модифицированной матрицы жесткости

DO 14 I = 2,NBAND DO 15 J = l,NCOLN P(I-1,J) = P(I,J)

15P(I,J) = 0

DO 14 J = 2,NBAND

ST(I- 1, J- 1) = ST(I,J)

ST(! - I,J) = 0

ST(I,J~1) = 0 , 14 ST(J,J) = 0

Смещение в исходное положение

CONTINUE

RETURN

Программа 20-20

SUBROUTINE BSUB

COMMON DIS(720,2),ST(60,60),Q(60,2),P(60,2),PST(2),BN(2),BV(2) COMMON NDF,NBAND,NSIZ,NDF1,NP,NELEM,NC0LN,NDATA

NP - число узлов

NP2 = NDF.NP DO 30 II = 1,NP2 M = NP2 - II

CALL RDBK(ST,P,NR,BNJJ,BVJJ)

Выполнение обратного хода

DO 11 J= 1,NC0LN

DO 11 I = 2,NBAND 11 P(1,J) = P(1,J)-ST(1,I).P(I,J)

DO 2 J = 1,NC0LN

P(1,J) = P(!,J).ST(1,1)

IF (NR.NE.l) GO TO 88

IF (BNJJ) 90,88,90 90 LK = M/NDF + 1

Запись номера узла и вычисленной реакции

WRITE(6,10) LK,P(LJ) 10 FORMAT(I4,E16.8) DIS(M + 1,J) = BVJJ P(!,J) = BVJJ GO TO 2 88 DIS(M + 1,J) = P(1,J) 2 CONTINUE

Смещение известной матрицы перемещений

DO 4 I = 2,NBAND L = NBAND - I + 1 DO 4 J = l.NCOLN 4 P(L+4,J) = P(L,J) 30 CONTINUE WRITE(6,!5)

15 F0RMAT(16H X-DISPLACEMENT, 16H Y-DISPLACEMENT) 34 WRITE(6,7) ((DIS(I,J),I = 1,NP2),J=!,NC0LN) 7 F0RMAT(2E168)

RETURN



0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 [ 85 ] 86 87 88