结构分析程序设计课程作业1钢筋混凝土偏心受压构件程序设计姓名:徐波学号:1219010230(河海大学土木与交通学院,江苏省南京市210098)1引言钢筋混凝土受压柱结构,有轴心受压、偏心受压两种,偏心受压又包括大偏心和小偏心两种情形。因此,编者为方便工程中遇到的矩形偏心受压构件的配筋计算,用Fortran语言编制了该程序,能快速计算出偏心受压构件受压与受拉钢筋的配筋面积,方便使用者对钢筋进行选配,并对选配钢筋后的截面按规范进行复核。2偏心受压构件计算理论及程序框图2.1偏心受压构件计算理论图1偏心受压构件理论计算过程结构分析程序设计课程作业2图2偏心受压构件理论计算公式2.2程序框图开始输入受力N、M1、M2,截面参数b,h,计算长度lc及砼保护层厚度as、a’s输入混凝土标号C调出混凝土设计强度输入钢筋型号调出钢筋设计强度计算稳定系数φ结构分析程序设计课程作业33源程序考虑p效应计算ie,判断大小偏心调用大偏心子程序计算并输出配筋结果调用小偏心子程序计算并输出配筋结果结束programcompressedmember!矩形截面受压构件计算implicitnonereal::N,M1,M2,b,h,Lc,as1,as3,fc,ft,fy,fy2,A,i,M,ea,h0,ei,e,KCb,a1real::As,As2,fai,rinteger::C,HRBprint*,'请依次输入N(N),M1,M2(N*mm),b,h,Lc,as,as’(mm)'read*,N,M1,M2,b,h,Lc,as1,as3calljudge(b,h,Lc)print*,'请输入混凝土标号C='read*,Ccallconcrete(C,fc,ft)print*,'请输入钢筋等级HRB='read*,HRBcallrebar(HRB,fy,fy2,KCb,r)callstress(Lc,b,fai)callpdrt(M1,M2,N,fc,A,Lc,i,M,ea,h0,b,h,as1)ea=max(h/30,20.0)ei=M/N+ea结构分析程序设计课程作业4e=ei+h/2-as1a1=1.0if(ei0.3*h0)thenprint*,'该构件为大偏心受压构件'calllarge(As,As2,N,e,a1,fc,b,h0,KCb,fy,fy2,as3,h,r,fai,ei)elseprint*,'该构件为小偏心受压构件'calllittle(As,As2,fc,b,h,N,as3,ea,M,KCb,h0,as1,a1,fy,fy2,fai)endifendprogram********************************************************subroutinestress(Lc,b,fai)!稳定系数φimplicitnonereal::Lc,b,faiif((Lc/b)=8)thenfai=1elseif((Lc/b)8.and.(Lc/b)=34)thenfai=1.177-0.021*Lc/belseif((Lc/b)34.and.(Lc/b)=50)thenfai=0.87-0.012*Lc/belseprint*,'warning:构件长细比不符合规范!'endifendsubroutine********************************************************subroutinejudge(b,h,Lc)!截面尺寸、长细比判断implicitnonereal::b,h,Lcif(b250.or.h250)thenprint*,'Warning:截面尺寸过小!'elseif(Lc/b30.or.Lc/h25)thenprint*,'Warning:长细比不满足规范!'endifendsubroutine*******************************************************结构分析程序设计课程作业5subroutineconcrete(C,fc,ft)!混凝土受拉、受压设计强度implicitnoneinteger::Creal::fc,ftif(C==30)thenfc=14.3ft=1.43elseif(c==35)thenfc=16.7ft=1.57elseif(c==40)thenfc=19.1ft=1.71elseif(c==45)thenfc=21.1ft=1.80elsefc=0ft=0print*,'Warning:未录入的标号,请输入C30~C45!'endifprint*,'fc=',fc,'(N/mm^2)'print*,'ft=',ft,'(N/mm^2)'endsubroutine*******************************************************subroutinerebar(HRB,fy,fy2,KCb,r)!钢筋受拉、受压设计强度implicitnoneinteger::HRBreal::fy,fy2,KCb,rif(HRB==300)thenfy=270fy2=270KCb=0.576r=0.006elseif(HRB==335)then结构分析程序设计课程作业6fy=300fy2=300KCb=0.550r=0.006elseif(HRB==400)thenfy=360fy2=360KCb=0.518r=0.0055elseif(HRB==500)thenfy=435fy2=410KCb=0.482r=0.005elsefy=0fy2=0KCb=0r=0print*,'Warning:未录入的标号!'endifprint*,'fy=',fy,'(N/mm^2)'print*,'fy’=',fy2,'(N/mm^2)'endsubroutine*******************************************************subroutinepdrt(M1,M2,N,fc,A,Lc,i,M,ea,h0,b,h,as1)!p-Δ效应implicitnonereal::M1,M2,N,fc,A,Lc,i,M,ea,h0,b,h,as1real::Cm,yns,KCc,j!Cm,ηns,ξcA=b*hh0=h-as1Cm=0.7+0.3*M1/M2if(Cm0.7)Cm=0.7KCc=0.5*fc*A/Nif(KCc1)KCc=1结构分析程序设计课程作业7yns=1+1/(1300*(M2/N+ea)/h0)*(Lc/h)**2*KCcj=Cm*ynsif(j1)j=1i=0.289*h!矩形截面的回转半径if((M1/M2)0.9.or.(N/(fc*A))0.9.or.(Lc/i)(34-12*M1/M2))thenM=j*M2elseM=M2print*,'不考虑p-Δ效应'endifendsubroutine*******************************************************subroutinelarge(As,As2,N,e,a1,fc,b,h0,KCb,fy,fy2,as3,h,r,fai,ei)implicitnonereal::As,As2,N,e,a1,fc,b,h0,KCb,fy,fy2,as3,h,r,fai,eireal::KC,Nuinteger::kprint*,'已知A’s?(是:1/否:2)'read*,kif(k==1)thenprint*,'请输入A’s(mm^2)'read*,As2KC=1-sqrt(1-2*((N*e-fy2*As2*(h0-as3))/(a1*fc*b*(h0)**2)))if(KCKCb)thenprint*,'A’s不能满足抗压要求,按未知进行重配筋'As2=(N*e-a1*fc*b*((h0)**2)*KCb*(1-0.5*KCb))/(fy2*(h0-as3))if(As20.002*b*h)As2=0.002*b*hAs=(a1*fc*b*h0*KCb-N)/fy+(fy2/fy)*As2elseif(KC(2*as3/h0))thenAs=N*(ei-h/2+as3)/(fy*(h0-as3))elseAs=(a1*fc*b*KC*h0+fy2*As2-N)/fyendifelseAs2=(N*e-a1*fc*b*((h0)**2)*KCb*(1-0.5*KCb))/(fy2*(h0-as3))结构分析程序设计课程作业8if(As20.002*b*h)As2=0.002*b*hAs=(a1*fc*b*h0*KCb-N)/fy+(fy2/fy)*As2endifprint*,'计算配筋为:As=',As,'mm^2'print*,'A’s=',As2,'mm^2'print*,'请根据钢筋公称面积表进行对面积进行调整'do!配筋总面积验算print*,'请输入调整后的钢筋面积As,A’s(单位:mm^2)'read*,As,As2if((As+As2)(0.05*b*h).and.(As+As2)(r*b*h))exitprint*,'不满足规范,请重配'enddoNu=0.9*fai*(fc*b*h+fy2*(As+As2))!截面承载力复核if(NNu)thenprint*,'承载力经复核满足要求'elseprint*,'截面承载力不满足要求'endifendsubroutine*******************************************************subroutinelittle(As,As2,fc,b,h,N,as3,ea,M,KCb,h0,as1,a1,fy&,fy2,fai)implicitnonereal::As,As2,fc,b,h,N,as3,ea,M,KCb,h0,as1,a1,fy,fy2,rreal::KC1,e2,h02,KCcy,u,v,fai,Nu,ei,ee2=h/2-as3-M/N+eah02=h-as3KCcy=2*0.8-KCb!β1取0.8,若砼强度标号大于C50请更改if(N=(fc*b*h))thenAs=0.002*b*helseAs=(N*e2-a1*fc*b*h*(h02-h/2))/(fy*(h02-as1))endifif(As0.002*b*h)As=0.002*b*hu=as3/h0+fy*As*(1-as3/h0)/((KCb-0.8)*a1*fc*b*h0)As2=(N*e-a1*fc*b*((h0)**2)*KCb*(1-0.5*KCb))/(fy2*(h0-as3))结构分析程序设计课程作业9v=2*N*e2/(a1*fc*b*(h0)**2)-2*0.8*fy*As*(1-as3/h0)/((KCb-0.8)*a1*fc&*b*(h0)**2)KC1=u+sqrt(u**2+v)if(KC1=KCb)thenprint*,'ξ≤ξb,按大偏心受压计算'calllarge(As,As2,N,e,a1,fc,b,h0,KCb,fy,fy2,as3,h,r,fai,ei)elseif(KC1KCb.and.KC1KCcy)thenAs2=(N-a1*fc*b*KC1*h0+As*fy*(KC1-0.8)/(KCb-0.8))/fy2elseif(KC1=Kccy.and.KC1(h/h0))thenKC1=as3/h0+sqrt((as3/h0)**2+2*(N*e2/(a1*fc*b*(h0)**2)-As*fy2*&(1-as3/h0)/(b*h0*a1*fc)))As2=(N-a1*fc*b*KC1*h0+As*(-fy2))/fy2elseAs2=(N-fy2*As-a1*fc*b*h)/fy2endifif(As2(