📄 output.f
字号:
**********************************************************************
* Writing incremental load and displacement
***********************************************************************
subroutine ldout(meb,nbc,nbcbm,epbc,header)
implicit real*8(a-h,o-z)
dimension nbcbm(3,meb),epbc(4,meb)
character header*70
write(6,410)
write(6,420) ((nbcbm(i,j),i=1,3),(epbc(i,j),i=1,4),j=1,nbc)
write(6,430)
400 format(/a70/)
410 format(//5x,'***Boundary Condition (incremental form)***'
$ //5x,' no. x-dr y-dr node 1 of x node 2 of x',
$ ' node 1 of y node 2 of y'/)
420 format(5x,3i5,4d15.7)
430 format(/)
end
*
**********************************************************************
* This subroutine outputs displacement,reactions and stresses
**********************************************************************
subroutine output(ng,mpoin,npoin,mgpf,ngpf,iincs,noutp,x,xxgpf,
$ tu,sts_node,eps_node,strsgf,epsgf,effstf,epstnf)
implicit real*8(a-h,o-z)
dimension x(ng,mpoin+3),xxgpf(ng,mgpf)
dimension tu(mpoin*ng),sts_node(4,mpoin),eps_node(4,mpoin)
dimension strsgf(4,mgpf),epsgf(4,mgpf)
dimension effstf(mgpf),epstnf(mgpf)
character ch*9
*
*---- Output nodal data ( x,y,ux,uy,sx,sy,sxy,szz)
*
if(noutp.eq.1.or.noutp.eq.2) then
write(ch,'(i5,4h.txt)') iincs+10000
ch(1:1)= 'N'
open(88,file=ch)
write(88,70)
do i=1,npoin
s1= sts_node(1,i)+sts_node(2,i)
s2= sqrt((sts_node(1,i)-sts_node(2,i))**2 +
$ 4*sts_node(3,i)**2)
ss1=(s1+s2)/2.0d0
ss2=(s1-s2)/2.0d0
sm1= (sts_node(1,i) - sts_node(2,i))**2
sm2= (sts_node(2,i) - sts_node(4,i))**2
sm3= (sts_node(4,i) - sts_node(1,i))**2
sm4= 6.0d0*sts_node(3,i)**2
sm = sqrt((sm1+sm2+sm3+sm4)/2.0d0)
write(88,60) i,x(1,i),x(2,i),tu(i*2-1),tu(i*2),
$ (sts_node(j,i),j=1,4),sm,ss1,ss2,(eps_node(j,i),j=1,4)
enddo
60 format(i5,20e15.7)
70 format(2x,'No.',5x,'X-coord.',7x,'Y-coord.',7x,'x-disp',
$ 9x,'y-disp',8x,'xx-stress'6x,'yy-stress',6x,'xy-stress',
$ 6x,'zz-stress',4x,'Mises-stress',6x,'p.1-stress',
$ 5x,'p.2-stress',6x,'xx-eps'8x,'yy-eps',8x,'xy-eps',
$ 8x,'zz-eps')
close(88)
endif
*
*---- Output gaussian data ( x,y,sx,sy,sxy,szz,mises)
*
if(noutp.eq.1.or.noutp.eq.3) then
write(ch,'(i5,4h.txt)') iincs+10000
ch(1:1)= 'G'
open(88,file=ch)
write(88,75)
do i=1,ngpf
s1= strsgf(1,i)+strsgf(2,i)
s2= sqrt((strsgf(1,i)-strsgf(2,i))**2 +
$ 4*strsgf(3,i)**2)
ss1=(s1+s2)/2.0d0
ss2=(s1-s2)/2.0d0
write(88,65) i,(xxgpf(j,i),j=1,2),(strsgf(j,i),j=1,4),
$ effstf(i),ss1,ss2,(epsgf(j,i),j=1,4)
enddo
65 format(i5,20e15.7)
close(88)
75 format(2x,'No.',5x,'X-coord.',7x,'Y-coord.',
$ 6x,'xx-stress'6x,'yy-stress',6x,'xy-stress',
$ 6x,'zz-stress',4x,'Mises-stress',
$ 5x,'p.1-stress',5x,'p.2-stress',
$ 6x,'xx-eps'8x,'yy-eps',8x,'xy-eps',8x,'zz-eps')
endif
end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -