6semforce (Вспомогательные материалы), страница 2
Описание файла
Файл "6semforce" внутри архива находится в папке "Вспомогательные материалы". Текстовый-файл из архива "Вспомогательные материалы", который расположен в категории "". Всё это находится в предмете "информатика" из 2 семестр, которые можно найти в файловом архиве МАИ. Не смотря на прямую связь этого архива с МАИ, его также можно найти и в других разделах. Архив можно найти в разделе "остальное", в предмете "информатика" в общих файлах.
Просмотр 2 страницы текстового-файла онлайн
J=IFORCE3(I)
* Координата текущей точки
X1=CORD(2*(IFORCE3(I)-1)+1)
Y1=CORD(2*(IFORCE3(I)-1)+2)
* Координата предыдущей точки
IF (I.NE.1) THEN
X3=CORD(2*(IFORCE3(I-1)-1)+1)
Y3=CORD(2*(IFORCE3(I-1)-1)+2)
ELSE
X3=X1
Y3=Y1
ENDIF
* Координата следующей точки
IF (I.NE.I3) THEN
X2=CORD(2*(IFORCE3(I+1)-1)+1)
Y2=CORD(2*(IFORCE3(I+1)-1)+2)
ELSE
X2=X1
Y2=Y1
ENDIF
* Высчитываем S - длину основания, на которую будет действовать нагрузка.
* В формуле трапеций S - высота трапеции,
S=sqrt((X2-X3)**2+(Y2-Y3)**2)/2.
* Перерасчет координаты точки на наклонной стороны в зависимости от исходных
* координат X и Y. Здесь sqrt(2.).2 - так как угол наклона стороны - 45 градусов.
XF1=(X1-24-(X1-X3)/2.)*2./sqrt(2.)
XF2=((X2-X1)/2.+X1-24)*2./sqrt(2.)
* Высчитываем интеграл R1 для заданного интервала методом трапеций
* поделив интервал на 100 частей
* Функция нагрузки q(x) = q0*(sin(z*x))**3
SH=0.01
XK=XF1+SH
R1=0
DO WHILE ((XK-XF2).LT.0)
R1=R1+SH*(PRM2*(sin(PRM3*(XK-SH)))**3+
> PRM2*(sin(PRM3*(XK)))**3)/2.
XK=XK+SH
ENDDO
* Заносим в массив R получившиеся нагрузки разложенные по X и Y
* sqrt(2.).2 - так как угол наклона стороны - 45 градусов.
R(NDF*(IFORCE3(I)-1)+1)=R(NDF*(IFORCE3(I )-1)+1)+R1*sqrt(2.)/2.
R(NDF*(IFORCE3(I)-1)+2)=R(NDF*(IFORCE3(I )-1)+2)+R1*sqrt(2.)/2.
* Выводим нагруженные узлы, их координаты и подсчитываем кол-во
IF(IPR(23)) THEN
WRITE(6,21) J,CORD(NDF*(J-1)+1),
> CORD(NDF*(J-1)+2),R((J-1)*NDF+1),R((J-1) *NDF+2)
NR=NR+1
ENDIF
303 continue
* Задание распределенной силы на IFORCE4 (аналогично IFORCE3)
DO 304 I=1,I4
J=IFORCE4(I)
* Координата текущей точки
X1=CORD(2*(IFORCE4(I)-1)+1)
Y1=CORD(2*(IFORCE4(I)-1)+2)
* Координата предыдущей точки
IF (I.NE.1) THEN
X3=CORD(2*(IFORCE4(I-1)-1)+1)
Y3=CORD(2*(IFORCE4(I-1)-1)+2)
ELSE
X3=X1
Y3=Y1
ENDIF
* Координата следующей точки
IF (I.NE.I4) THEN
X2=CORD(2*(IFORCE4(I+1)-1)+1)
Y2=CORD(2*(IFORCE4(I+1)-1)+2)
ELSE
X2=X1
Y2=Y1
ENDIF
* Высчитываем S - длину основания, на которую будет действовать нагрузка.
* В формуле трапеций S - высота трапеции,
S=sqrt((X2-X3)**2+(Y2-Y3)**2)/2.
* Перерасчет координаты точки на наклонной стороны в зависимости от исходных
* координат X и Y
XF1=(X1-24-(X1-X3)/2.)*2./sqrt(2.)
XF2=((X2-X1)/2.+X1-24)*2./sqrt(2.)
* Высчитываем R1 для заданного интервала методом трапеций
SH=0.01
XK=XF1+SH
R1=0
DO WHILE ((XK-XF2).LT.0)
R1=R1+SH*(PRM2*(sin(PRM3*(XK-SH)))**3+
> PRM2*(sin(PRM3*(XK)))**3)/2.
XK=XK+SH
ENDDO
* Заносим в массив R получившиеся нагрузки разложенные по X и Y
R(NDF*(IFORCE4(I)-1)+1)=R(NDF*(IFORCE4(I )-1)+1)+R1*sqrt(2.)/2.
R(NDF*(IFORCE4(I)-1)+2)=R(NDF*(IFORCE4(I )-1)+2)+R1*sqrt(2.)/2.
* Выводим нагруженные узлы, их координаты и подсчитываем кол-во
IF(IPR(23)) THEN
IF ((ABS(PRM6-1).LT.0.01).AND.
> (ABS(CORD(NDF*(J-1)+1)-44.15).GT.0.01)) THEN
WRITE(6,21) J,CORD(NDF*(J-1)+1),
> CORD(NDF*(J-1)+2),R((J-1)*NDF+1),R((J-1) *NDF+2)
NR=NR+1
ENDIF
ENDIF
304 continue
*--------------------------------------- --------------------------------
IF(IPR(23)) PRINT *,"ЧИСЛО НАГРУЖЕННЫХ УЗЛОВ NR=",NR
WRITE(6,132)
DO 121 I=1,NP
XT=CORD(NDF*(I-1)+1)
YT=CORD(NDF*(I-1)+2)
WRITE(6,133)I,XT,YT
121 CONTINUE
21 FORMAT (I6,1X,2F10.3,4X,2F9.2)
122 RETURN
IF (NR.NE.0) GOTO 122
WRITE(6,6) (I,(R((I-1)*NDF+J),J=1,NDF),I=1,NP)
6 FORMAT (' HE HAЙДEHЫ TOЧKИ ПPИЛOЖEHИЯ HAГPУЗOK'/8(I4,2G10.2))
20 FORMAT (' PACПPEДEЛEHИE HAГPУЗOK'/ ' УЗEЛ X-COORD',
> ' Y-COORD * RX * * RY *')
132 FORMAT(' Координты узлов'/' Узел X Y')
133 FORMAT(I5,' ',1F7.4,' ',1F7.4)
22 FORMAT (' CУMMAPHAЯ HAГPУЗKA '/' * RX * * RY *'/
>(3X,2F11.3))
STOP
END
* Функция для расчета основания
function OSNOV(A1, B1, A2, B2, A3, B3)
OSNOV=sqrt((A2-A1)**2+(B2-B1)**2)/2.+sqr t((A3-A1)**2+(B3-B1)**2)/2.
return
end
C ======================================== ==========================
C wwwwwwwwwwwwwwwwww конец кода FORCE wwwwwwwwwwwwwwwwwwwwwwwwwwwww
C ======================================== ==========================