主题:我明明在程序开头定义了Ae,Sey,Iey这三个量,为什么还是提示子程序中的
我明明在程序开头定义了Ae,Sey,Iey这三个量,为什么还是提示子程序中的
Ae=Ae+E/E0*AA(i)
Sey=Sey+E/E0*y(i)*AA(i)
Iey=Iey+E/E0*y(i)*y(i)*AA(i)
编译时提示Ae,Sey,Iey The shapes of the array expressions do not conform.
希望高手指点下,东西要的比较急,感激不尽
下面附上主程序的开头和子程序
program main
implicit none
integer::d,t,k,i,j
real::a,b,c
real::M,P,P0,Q,xi
real::E0,f,A0
real::epsi0,epsi,phi0,ee,dM,deta0
real::Ae,Sey,Iey,length
subroutine yei(d,t,k,y,E,E0,Ae,ye,Ie) !计算弹性区截面特性
implicit none
integer::d,t,k,i,j
real::Ae,Sey,ye,Iey,Ie,E0
real::E(k),y(k),AA(k)
real,parameter::pi=3.1415926
call yi(d,t,k,y)
Ae=0.0
Sey=0.0
Iey=0.0
do j=1,t,1
do i=1,360,1
AA(i+360*(j-1))=0.5*((d-2*t)*0.5+j)**2*pi/180-0.5*((d-2*t)*0.5+j-1)**2*pi/180
end do
end do
do i=1,k,1
Ae=Ae+E/E0*AA(i)
Sey=Sey+E/E0*y(i)*AA(i)
Iey=Iey+E/E0*y(i)*y(i)*AA(i)
end do
ye=Sey/Ae
Ie=Iey-Sey*ye
if(Ae<=1E-4)then
write(*,*)"全截面屈服!"
stop
end if
return
end subroutine yei
Ae=Ae+E/E0*AA(i)
Sey=Sey+E/E0*y(i)*AA(i)
Iey=Iey+E/E0*y(i)*y(i)*AA(i)
编译时提示Ae,Sey,Iey The shapes of the array expressions do not conform.
希望高手指点下,东西要的比较急,感激不尽
下面附上主程序的开头和子程序
program main
implicit none
integer::d,t,k,i,j
real::a,b,c
real::M,P,P0,Q,xi
real::E0,f,A0
real::epsi0,epsi,phi0,ee,dM,deta0
real::Ae,Sey,Iey,length
subroutine yei(d,t,k,y,E,E0,Ae,ye,Ie) !计算弹性区截面特性
implicit none
integer::d,t,k,i,j
real::Ae,Sey,ye,Iey,Ie,E0
real::E(k),y(k),AA(k)
real,parameter::pi=3.1415926
call yi(d,t,k,y)
Ae=0.0
Sey=0.0
Iey=0.0
do j=1,t,1
do i=1,360,1
AA(i+360*(j-1))=0.5*((d-2*t)*0.5+j)**2*pi/180-0.5*((d-2*t)*0.5+j-1)**2*pi/180
end do
end do
do i=1,k,1
Ae=Ae+E/E0*AA(i)
Sey=Sey+E/E0*y(i)*AA(i)
Iey=Iey+E/E0*y(i)*y(i)*AA(i)
end do
ye=Sey/Ae
Ie=Iey-Sey*ye
if(Ae<=1E-4)then
write(*,*)"全截面屈服!"
stop
end if
return
end subroutine yei